diff --git a/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/CognitiveComplexity.kt b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/CognitiveComplexity.kt index 1be74733472..6c5aadd2202 100644 --- a/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/CognitiveComplexity.kt +++ b/detekt-metrics/src/main/kotlin/io/github/detekt/metrics/CognitiveComplexity.kt @@ -1,7 +1,6 @@ package io.github.detekt.metrics import io.gitlab.arturbosch.detekt.api.DetektVisitor -import io.gitlab.arturbosch.detekt.rules.isElseIf import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.com.intellij.openapi.util.Key import org.jetbrains.kotlin.com.intellij.psi.tree.IElementType @@ -96,7 +95,7 @@ class CognitiveComplexity private constructor() : DetektVisitor() { if (element is KtContainerNodeForControlStructureBody && parent is KtIfExpression) { when (element.node.elementType) { KtNodeTypes.THEN -> { - if (parent.isElseIf()) { + if (parent.parent.node.elementType == KtNodeTypes.ELSE) { complexity++ } else { addComplexity() diff --git a/detekt-psi-utils/api/detekt-psi-utils.api b/detekt-psi-utils/api/detekt-psi-utils.api index 0e358c7ef05..84b4d7ec9c5 100644 --- a/detekt-psi-utils/api/detekt-psi-utils.api +++ b/detekt-psi-utils/api/detekt-psi-utils.api @@ -70,10 +70,6 @@ public final class io/gitlab/arturbosch/detekt/rules/KtExpressionKt { public static final fun isUnitExpression (Lorg/jetbrains/kotlin/psi/KtExpression;)Z } -public final class io/gitlab/arturbosch/detekt/rules/KtIfExpressionKt { - public static final fun isElseIf (Lorg/jetbrains/kotlin/psi/KtIfExpression;)Z -} - public final class io/gitlab/arturbosch/detekt/rules/KtLambdaExpressionKt { public static final fun firstParameter (Lorg/jetbrains/kotlin/psi/KtLambdaExpression;Lorg/jetbrains/kotlin/resolve/BindingContext;)Lorg/jetbrains/kotlin/descriptors/ValueParameterDescriptor; public static final fun hasImplicitParameterReference (Lorg/jetbrains/kotlin/psi/KtLambdaExpression;Lorg/jetbrains/kotlin/descriptors/ValueParameterDescriptor;Lorg/jetbrains/kotlin/resolve/BindingContext;)Z diff --git a/detekt-psi-utils/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/KtIfExpression.kt b/detekt-psi-utils/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/KtIfExpression.kt deleted file mode 100644 index cc15d679f00..00000000000 --- a/detekt-psi-utils/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/KtIfExpression.kt +++ /dev/null @@ -1,9 +0,0 @@ -package io.gitlab.arturbosch.detekt.rules - -import org.jetbrains.kotlin.KtNodeTypes -import org.jetbrains.kotlin.psi.KtContainerNodeForControlStructureBody -import org.jetbrains.kotlin.psi.KtIfExpression - -fun KtIfExpression.isElseIf(): Boolean = - parent.node.elementType == KtNodeTypes.ELSE && - (parent as? KtContainerNodeForControlStructureBody)?.expression == this diff --git a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseIfEmptyOrIfBlank.kt b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseIfEmptyOrIfBlank.kt index c02d1c74fd0..b5bad7081ce 100644 --- a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseIfEmptyOrIfBlank.kt +++ b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseIfEmptyOrIfBlank.kt @@ -5,7 +5,7 @@ import io.gitlab.arturbosch.detekt.api.Config import io.gitlab.arturbosch.detekt.api.Entity import io.gitlab.arturbosch.detekt.api.RequiresTypeResolution import io.gitlab.arturbosch.detekt.api.Rule -import io.gitlab.arturbosch.detekt.rules.isElseIf +import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.FqName @@ -54,7 +54,7 @@ class UseIfEmptyOrIfBlank(config: Config) : Rule( override fun visitIfExpression(expression: KtIfExpression) { super.visitIfExpression(expression) - if (expression.isElseIf()) return + if (expression.parent.node.elementType == KtNodeTypes.ELSE) return val thenExpression = expression.then ?: return val elseExpression = expression.`else` ?: return if (elseExpression is KtIfExpression) return