new expression: keep calm with invalid code (IDEA-189834)

This commit is contained in:
Anna.Kozlova
2018-04-13 16:30:47 +02:00
parent d79b014c48
commit 157a19c220
2 changed files with 12 additions and 1 deletions
@@ -113,7 +113,9 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew
public PsiExpression[] getArrayDimensions() {
PsiExpression[] expressions = getChildrenAsPsiElements(ElementType.ARRAY_DIMENSION_BIT_SET, PsiExpression.ARRAY_FACTORY);
PsiExpression qualifier = getQualifier();
if (qualifier == null) {
if (qualifier == null ||
//invalid qualifier
!ElementType.ARRAY_DIMENSION_BIT_SET.contains(qualifier.getNode().getElementType())) {
return expressions;
}
else {
@@ -110,3 +110,12 @@ public class a12 {
}
//invalid arrays
class array {
{
int[] a1 =<error descr="Expression expected"> </error><error descr="Unexpected token">.</error>new <error descr="Cannot resolve symbol 'C'">C</error>[0];
int[] a2 = {}.new <error descr="Cannot resolve symbol 'D'">D</error>[0];
int[] a3 = t -><error descr="'{' expected"> </error>.new <error descr="Cannot resolve symbol 'E'">E</error>[0];
int[] a4 = <error descr="Cannot resolve symbol 'a'">a</error>::<error descr="';' expected"><error descr="Identifier expected"><error descr="Unexpected token">.</error></error></error>new <error descr="Cannot resolve symbol 'F'">F</error>[0];
}
}