[groovy] Stop processing operators in the light version of extended inference

GitOrigin-RevId: 625f4e688555e12d492d0301db7fe4e4100b6ce9
This commit is contained in:
Konstantin.Nisht
2020-05-11 16:53:16 +00:00
committed by intellij-monorepo-bot
parent 71c9bf7d9b
commit e7e42a5f65
2 changed files with 6 additions and 2 deletions
@@ -30,6 +30,8 @@ open class SignatureInferenceContext(val ignored: List<GrMethod>) {
}
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
}
@@ -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)