diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index d3e689c97762..43edbe4fdc07 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -2811,6 +2811,12 @@ public final class HighlightUtil { return null; } + if (expression instanceof PsiJavaCodeReferenceElement && + expression.getParent() instanceof PsiNewExpression newExpression && + newExpression.isArrayCreation() && newExpression.getClassOrAnonymousClassReference() == expression) { + return null; + } + HighlightInfo.Builder builder = createMemberReferencedError(resolvedName, expression.getTextRange()); if (expression instanceof PsiReferenceExpression ref && PsiUtil.isInnerClass(parentClass)) { String referenceName = ref.getReferenceName(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/ArrayInitBeforeSuper.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/ArrayInitBeforeSuper.java new file mode 100644 index 000000000000..e3e2beae67bc --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/ArrayInitBeforeSuper.java @@ -0,0 +1,17 @@ +public class ArrayInitBeforeSuper { + public static void main(String[] args) { + } + + public class Example extends Zuper{ + public class Inner{ + } + Example() { + super(new Inner[]{}); // <<<< NOT ERROR + } + } + + class Zuper { + Zuper(Example.Inner[] inners) { + } + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingTest.java index 0f28c03d79e3..46745fe2c3b0 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingTest.java @@ -442,4 +442,8 @@ public class LightAdvHighlightingTest extends LightDaemonAnalyzerTestCase { public void testUninitializedVarComplexTernary() { doTest(false); } + + public void testArrayInitBeforeSuper() { + doTest(false); + } } \ No newline at end of file