diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java index 90087e02da44..6e10adb525f0 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java @@ -47,7 +47,6 @@ import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil; import org.jetbrains.plugins.groovy.lang.resolve.DependentResolver; import org.jetbrains.plugins.groovy.lang.resolve.GroovyResolver; import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil; -import org.jetbrains.plugins.groovy.lang.resolve.api.Argument; import org.jetbrains.plugins.groovy.lang.resolve.api.GroovyProperty; import org.jetbrains.plugins.groovy.lang.resolve.references.GrExplicitMethodCallReference; import org.jetbrains.plugins.groovy.lang.resolve.references.GrStaticExpressionReference; @@ -62,7 +61,7 @@ import static com.intellij.psi.util.PsiUtilCore.ensureValid; import static java.util.Collections.emptyList; import static kotlin.LazyKt.lazy; import static org.jetbrains.plugins.groovy.lang.psi.GroovyTokenSets.REFERENCE_DOTS; -import static org.jetbrains.plugins.groovy.lang.psi.util.GroovyLValueUtil.getRValue; +import static org.jetbrains.plugins.groovy.lang.psi.util.GroovyLValueUtil.isLValue; import static org.jetbrains.plugins.groovy.lang.psi.util.GroovyLValueUtil.isRValue; import static org.jetbrains.plugins.groovy.lang.resolve.impl.IncompleteKt.resolveIncomplete; import static org.jetbrains.plugins.groovy.lang.typing.DefaultMethodCallTypeCalculatorKt.getTypeFromCandidate; @@ -79,19 +78,9 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl myCallReference = lazy( - () -> getParent() instanceof GrMethodCall && !isImplicitCallReceiver() ? new GrExplicitMethodCallReference(this) : null - ); - - private final Lazy myRValueReference = lazy( - () -> isRValue(this) ? new GrRValueExpressionReference(this) : null - ); - - private final Lazy myLValueReference = lazy(() -> { - Argument rValue = getRValue(this); - return rValue == null ? null : new GrLValueExpressionReference(this, rValue); - }); + private final Lazy myCallReference = lazy(() -> new GrExplicitMethodCallReference(this)); + private final Lazy myRValueReference = lazy(() -> new GrRValueExpressionReference(this)); + private final Lazy myLValueReference = lazy(() -> new GrLValueExpressionReference(this)); @Override public void accept(@NotNull GroovyElementVisitor visitor) { @@ -422,19 +411,19 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl doResolve(@NotNull GrReferenceExpressionImpl ref, boolean incomplete) { - final GroovyReference rValueRef = ref.myRValueReference.getValue(); - final GroovyReference lValueRef = ref.myLValueReference.getValue(); + final GroovyReference rValueRef = ref.getRValueReference(); + final GroovyReference lValueRef = ref.getLValueReference(); if (rValueRef != null && lValueRef != null) { // merge results from both references final Map results = new THashMap<>(); @@ -615,7 +604,7 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl): GrResolverProcessor<*> { - return lValueProcessor(name, place, kinds, argument) + val rValue = requireNotNull(element.getRValue()) + return lValueProcessor(name, place, kinds, rValue) } }