diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java index 2a7c843c2ae3..cd09b455ece4 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java @@ -664,7 +664,10 @@ public class HighlightClassUtil { return null; } PsiClass aClass = (PsiClass)grand; - if (aClass.getExtendsList() != parent || aClass instanceof PsiTypeParameter) { + if (aClass instanceof PsiTypeParameter) { + return null; + } + if (aClass.getExtendsList() != parent && aClass.getImplementsList() != parent) { return null; } if (!(resolved instanceof PsiClass)) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/ExtendsClause.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/ExtendsClause.java index a436f1ee38af..5acef9b3d7a0 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/ExtendsClause.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/ExtendsClause.java @@ -1,4 +1,17 @@ class s { int i; class inn extends i {} -} \ No newline at end of file +} + +interface IFoo { + public static final double UNKNOWN = -1; +} +class Foo implements IFoo.UNKNOWN { + // error should be shown here +} +class Foo2 extends IFoo.UNKNOWN { + // error should be shown here +} +class Xss implements Integer.MAX_VALUE {} +class Xss2 extends Integer.MAX_VALUE {} +