From aaa0e04bf130a53916d8d7743963f66d3b1bddb8 Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Tue, 4 Dec 2018 18:08:10 +0300 Subject: [PATCH] [groovy] diagnostic for EA-132329 --- .../plugins/groovy/lang/psi/impl/PsiImplUtil.java | 2 +- .../impl/statements/expressions/GrMethodCallImpl.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/PsiImplUtil.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/PsiImplUtil.java index dd59395ae811..ea8f68a71883 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/PsiImplUtil.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/PsiImplUtil.java @@ -79,7 +79,7 @@ import static org.jetbrains.plugins.groovy.lang.psi.impl.utils.ParenthesesUtils. import static org.jetbrains.plugins.groovy.lang.psi.impl.utils.ParenthesesUtils.parenthesize; public class PsiImplUtil { - private static final Logger LOG = Logger.getInstance("org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil"); + public static final Logger LOG = Logger.getInstance("org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil"); private static final String MAIN_METHOD = "main"; public static final Key> PSI_CODE_BLOCK = Key.create("Psi_code_block"); public static final Key> PSI_TYPE_ELEMENT = Key.create("psi.type.element"); diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrMethodCallImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrMethodCallImpl.java index de3f51f23d46..5249d7836980 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrMethodCallImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrMethodCallImpl.java @@ -21,6 +21,8 @@ import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.Gr import org.jetbrains.plugins.groovy.lang.resolve.api.GroovyMethodCallReference; import org.jetbrains.plugins.groovy.lang.resolve.impl.GrImplicitCallReference; +import static org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil.LOG; + /** * @author Maxim.Medvedev */ @@ -72,7 +74,14 @@ public abstract class GrMethodCallImpl extends GrCallExpressionImpl implements G if (implicitCallReference != null) { return implicitCallReference.multiResolve(incompleteCode); } - return ((GrReferenceExpression)getInvokedExpression()).multiResolve(incompleteCode); + final GrExpression invokedExpression = getInvokedExpression(); + if (invokedExpression instanceof GrReferenceExpression) { + return ((GrReferenceExpression)invokedExpression).multiResolve(incompleteCode); + } + else { + LOG.error("Invoked expression is not a reference expression and there is no implicit call reference: '" + getText() + "'"); + return GroovyResolveResult.EMPTY_ARRAY; + } } @Override