[groovy] diagnostic for EA-132329

This commit is contained in:
Daniil Ovchinnikov
2018-12-04 18:11:49 +03:00
parent 1b17f95759
commit aaa0e04bf1
2 changed files with 11 additions and 2 deletions
@@ -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<SoftReference<PsiCodeBlock>> PSI_CODE_BLOCK = Key.create("Psi_code_block");
public static final Key<SoftReference<PsiTypeElement>> PSI_TYPE_ELEMENT = Key.create("psi.type.element");
@@ -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