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 {}
+