From e7e42a5f6528e67d9666fd1a19f3a5106e57fc3b Mon Sep 17 00:00:00 2001 From: "Konstantin.Nisht" Date: Mon, 11 May 2020 17:26:35 +0300 Subject: [PATCH] [groovy] Stop processing operators in the light version of extended inference GitOrigin-RevId: 625f4e688555e12d492d0301db7fe4e4100b6ce9 --- .../intentions/style/inference/SignatureInferenceOptions.kt | 4 ++++ .../style/inference/driver/RecursiveMethodAnalyzer.kt | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/inference/SignatureInferenceOptions.kt b/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/inference/SignatureInferenceOptions.kt index ff2c6d9ed103..e4a41777fddb 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/inference/SignatureInferenceOptions.kt +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/inference/SignatureInferenceOptions.kt @@ -30,6 +30,8 @@ open class SignatureInferenceContext(val ignored: List) { } open val allowedToProcessReturnType : Boolean = true + + open val allowedToResolveOperators : Boolean = true } object DefaultInferenceContext : SignatureInferenceContext(emptyList()) @@ -57,4 +59,6 @@ class ClosureIgnoringInferenceContext(private val manager: PsiManager, ignored: } override val allowedToProcessReturnType: Boolean = false + + override val allowedToResolveOperators: Boolean = false } \ No newline at end of file diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/inference/driver/RecursiveMethodAnalyzer.kt b/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/inference/driver/RecursiveMethodAnalyzer.kt index ff7523509df1..a7178ab03198 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/inference/driver/RecursiveMethodAnalyzer.kt +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/inference/driver/RecursiveMethodAnalyzer.kt @@ -256,14 +256,14 @@ internal class RecursiveMethodAnalyzer(val method: GrMethod, signatureInferenceC override fun visitExpression(expression: GrExpression) { - if (expression is GrOperatorExpression) { + if (expression is GrOperatorExpression && builder.signatureInferenceContext.allowedToResolveOperators) { val operatorMethodResolveResult = expression.reference?.advancedResolve() if (operatorMethodResolveResult != null) { processMethod(operatorMethodResolveResult) } builder.addConstrainingExpression(expression) } - if (expression is GrIndexProperty) { + if (expression is GrIndexProperty && builder.signatureInferenceContext.allowedToResolveOperators) { expression.lValueReference?.advancedResolve()?.run { val lValueArguments = extractArguments(expression, expression.lValueReference as? GrIndexPropertyReference) processMethod(this, lValueArguments)