diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrReferenceExpression.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrReferenceExpression.java index 3dba0a5e718b..cda3ce46a513 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrReferenceExpression.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrReferenceExpression.java @@ -52,9 +52,5 @@ public interface GrReferenceExpression extends GrExpression, GrReferenceElement< GrReferenceExpression bindToElementViaStaticImport(@NotNull PsiMember member); @Nullable - @Override - default PsiType getType() { return getType(false); } - - @Nullable - PsiType getType(boolean forceRValue); + PsiType getRValueType(); } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrAssignmentExpressionImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrAssignmentExpressionImpl.java index b7e9586bdc49..ad8704feaab2 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrAssignmentExpressionImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrAssignmentExpressionImpl.java @@ -189,7 +189,7 @@ public class GrAssignmentExpressionImpl extends GrOperatorExpressionImpl impleme lType = ((GrIndexProperty)lValue).getGetterType(); } else if (lValue instanceof GrReferenceExpression) { - lType = ((GrReferenceExpression)lValue).getType(true); + lType = ((GrReferenceExpression)lValue).getRValueType(); } else { lType = lValue.getType(); 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 50407f727026..bae5a9474fbc 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 @@ -368,7 +368,7 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl calculate(e, false) - ); - } + public PsiType getType() { + return TypeInferenceHelper.getCurrentContext().getExpressionType(this, e -> calculateType(e, false)); + } + + @Nullable + @Override + public PsiType getRValueType() { + return calculateType(this, true); } @Override