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 0847482b4391..6309b24e9e17 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 @@ -2288,9 +2288,10 @@ public final class HighlightUtil { PsiExpression qualifierExpr = expression.getQualifierExpression(); // simple reference can be illegal (JLS 8.3.3) if (qualifierExpr == null) return false; + if (!(qualifierExpr instanceof PsiReferenceExpression)) return true; - PsiReference qualifiedReference = qualifierExpr.getReference(); - if (qualifiedReference != null && containingClass.equals(qualifiedReference.resolve())) { + PsiElement qualifiedReference = ((PsiReferenceExpression)qualifierExpr).resolve(); + if (qualifiedReference != null && containingClass.equals(qualifiedReference)) { // static fields that are constant variables (4.12.4) are initialized before other static fields (12.4.2), // so a qualified reference to the constant variable is possible. return PsiUtil.isCompileTimeConstant(referencedField); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/Enum242390_15.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/localInterfaceEnum/LocalEnumForwardReference.java similarity index 100% rename from java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/Enum242390_15.java rename to java/java-tests/testData/codeInsight/daemonCodeAnalyzer/localInterfaceEnum/LocalEnumForwardReference.java diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/GenericsHighlightingTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/GenericsHighlightingTest.java index 2512507987b2..4faab4f2f59b 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/GenericsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/GenericsHighlightingTest.java @@ -61,7 +61,6 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { private void doTest7(boolean checkWarnings) { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, checkWarnings); } private void doTest7Incompatibility() { doTest(LanguageLevel.JDK_1_5, JavaSdkVersion.JDK_1_7, false); } private void doTest8Incompatibility(boolean checkWarnings) { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_8, checkWarnings); } - private void doTest15(boolean checkWarnings) {doTest(LanguageLevel.JDK_15, JavaSdkVersion.JDK_15, checkWarnings);} public void testReferenceTypeParams() { doTest5(false); } public void testOverridingMethods() { doTest5(false); } @@ -86,7 +85,6 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { public void testEnum() { doTest5(false); } public void testEnum56239() { doTest6(false); } public void testEnum242390() { doTest7(false); } - public void testEnum242390_15() { doTest15(false); } public void testSameErasure() { doTest5(false); } public void testPairsWithSameErasure() { doTest5(false); } public void testMethods() { doTest5(false); } diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightLocalEnumsInterfacesHighlightingTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightLocalEnumsInterfacesHighlightingTest.java index 93028e759721..bc243f78d9b4 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightLocalEnumsInterfacesHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightLocalEnumsInterfacesHighlightingTest.java @@ -25,6 +25,8 @@ public class LightLocalEnumsInterfacesHighlightingTest extends LightJavaCodeInsi public void testLocalEnum() { doTest(); } + + public void testLocalEnumForwardReference() { doTest(); } private void doTest() { myFixture.configureByFile(getTestName(false) + ".java");