diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java index a7de8c0eb13c..640ea3b10785 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java @@ -786,7 +786,7 @@ public class HighlightClassUtil { if (PsiKeyword.THIS.equals(methodCallExpression.getMethodExpression().getReferenceName())) continue; PsiReferenceExpression referenceExpression = methodCallExpression.getMethodExpression(); PsiExpression qualifierExpression = PsiUtil.skipParenthesizedExprDown(referenceExpression.getQualifierExpression()); - if (!(qualifierExpression instanceof PsiReferenceExpression) && !(qualifierExpression instanceof PsiNewExpression)) return false; + if (!(qualifierExpression instanceof PsiReferenceExpression) && !(qualifierExpression instanceof PsiCallExpression)) return false; PsiType type = qualifierExpression.getType(); if (!(type instanceof PsiClassType)) return false; PsiClass resolved = ((PsiClassType)type).resolve(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/IDEA122519EnclosingInstance.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/IDEA122519EnclosingInstance.java new file mode 100644 index 000000000000..3de0841eb0a9 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/IDEA122519EnclosingInstance.java @@ -0,0 +1,20 @@ +class ClassA { + public abstract class InnerAbstractA { + } +} + +class ClassC { + static ClassA classA = new ClassA(); + + public static ClassA getClassA() { + return classA; + } +} + +class ClassB { + public static class InnerClassA extends ClassA.InnerAbstractA { + public InnerClassA() { + ClassC.getClassA().super(); + } + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk7Test.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk7Test.java index ebb5d94b48d2..9f146154d067 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk7Test.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk7Test.java @@ -165,6 +165,7 @@ public class LightAdvHighlightingJdk7Test extends LightDaemonAnalyzerTestCase { public void testUncheckedWarningIDEA26738() { doTest(true, false); } public void testUncheckedWarningIDEA99536() { doTest(true, false); } public void testEnclosingInstance() { doTest(false, false); } + public void testIDEA122519EnclosingInstance() { doTest(false, false); } public void testWrongArgsAndUnknownTypeParams() { doTest(false, false); } public void testAmbiguousMethodCallIDEA97983() { doTest(false, false); } public void testAmbiguousMethodCallIDEA100314() { doTest(false, false); }