From ad311fd75d37c90556e44ffff24fa0f1e5174fc0 Mon Sep 17 00:00:00 2001 From: Brais Date: Wed, 3 Aug 2022 17:07:37 +0200 Subject: [PATCH] Make ArrayPrimitive rule honor the RequiresTypeResolution annotation --- .../arturbosch/detekt/rules/performance/ArrayPrimitive.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/detekt-rules-performance/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/performance/ArrayPrimitive.kt b/detekt-rules-performance/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/performance/ArrayPrimitive.kt index da59b1c587c7..a1151ce1ed0c 100644 --- a/detekt-rules-performance/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/performance/ArrayPrimitive.kt +++ b/detekt-rules-performance/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/performance/ArrayPrimitive.kt @@ -11,10 +11,12 @@ import io.gitlab.arturbosch.detekt.api.internal.ActiveByDefault import io.gitlab.arturbosch.detekt.api.internal.RequiresTypeResolution import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.PrimitiveType +import org.jetbrains.kotlin.com.intellij.psi.PsiFile import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.KtCallExpression import org.jetbrains.kotlin.psi.KtCallableDeclaration +import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtNamedDeclaration import org.jetbrains.kotlin.psi.KtTypeReference import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType @@ -51,9 +53,13 @@ class ArrayPrimitive(config: Config = Config.empty) : Rule(config) { Debt.FIVE_MINS ) + override fun visitKtFile(file: KtFile) { + if (bindingContext == BindingContext.EMPTY) return + super.visitKtFile(file) + } + override fun visitCallExpression(expression: KtCallExpression) { super.visitCallExpression(expression) - if (bindingContext == BindingContext.EMPTY) return if (expression.calleeExpression?.text !in factoryMethodNames) return val descriptor = expression.getResolvedCall(bindingContext)?.resultingDescriptor