diff --git a/java/java-psi-api/src/com/intellij/codeInsight/ClassUtil.java b/java/java-psi-api/src/com/intellij/codeInsight/ClassUtil.java index 90cc4b9759e9..7d7cb772bd83 100644 --- a/java/java-psi-api/src/com/intellij/codeInsight/ClassUtil.java +++ b/java/java-psi-api/src/com/intellij/codeInsight/ClassUtil.java @@ -45,7 +45,7 @@ public class ClassUtil { @Nullable public static PsiMethod getAnyMethodToImplement(@NotNull PsiClass aClass) { final PsiClass superClass = aClass instanceof PsiAnonymousClass ? PsiUtil.resolveClassInClassTypeOnly(((PsiAnonymousClass)aClass).getBaseClassType()) : aClass.getSuperClass(); - if (superClass != null && !superClass.hasModifierProperty(PsiModifier.ABSTRACT) && aClass.getImplementsListTypes().length == 0) { + if (superClass != null && !superClass.hasModifierProperty(PsiModifier.ABSTRACT) && !superClass.isEnum() && aClass.getImplementsListTypes().length == 0) { return null; } Set alreadyImplemented = new THashSet(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/EnumConstantWithoutInterfaceImplementation.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/EnumConstantWithoutInterfaceImplementation.java new file mode 100644 index 000000000000..138ab8abc2e3 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/EnumConstantWithoutInterfaceImplementation.java @@ -0,0 +1,8 @@ + +interface A { + void m(); +} + +enum E implements A { + F() {}; +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java index 930860265462..2410bf9a1c78 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java @@ -78,4 +78,8 @@ public class LightAdvHighlightingJdk6Test extends LightDaemonAnalyzerTestCase { public void testThisInArgListOfAnonymous() { doTest(false, false); } + + public void testEnumConstantWithoutInterfaceImplementation() throws Exception { + doTest(false, false); + } }