From 157a19c22060b620e2c09430e43f29c57246feef Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Fri, 13 Apr 2018 16:09:54 +0200 Subject: [PATCH] new expression: keep calm with invalid code (IDEA-189834) --- .../psi/impl/source/tree/java/PsiNewExpressionImpl.java | 4 +++- .../advHighlighting/InvalidExpressions.java | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNewExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNewExpressionImpl.java index dee66c83b120..95f09d053917 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNewExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNewExpressionImpl.java @@ -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 { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/InvalidExpressions.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/InvalidExpressions.java index abff05e7ed60..afd6bd4ae22f 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/InvalidExpressions.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/InvalidExpressions.java @@ -110,3 +110,12 @@ public class a12 { } +//invalid arrays +class array { + { + int[] a1 = .new C[0]; + int[] a2 = {}.new D[0]; + int[] a3 = t -> .new E[0]; + int[] a4 = a::.new F[0]; + } +} \ No newline at end of file