diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java index 90d06403ae53..76c3d3d8cfec 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java @@ -984,7 +984,11 @@ public class GenericsHighlightUtil { if (resolved instanceof PsiClass) { final PsiClass containingClass = ((PsiClass)resolved).getContainingClass(); - if (containingClass != null && ref.getQualifier() == null && containingClass.getTypeParameters().length > 0 && !((PsiClass)resolved).hasModifierProperty(PsiModifier.STATIC)) { + if (containingClass != null && + ref.getQualifier() == null && + containingClass.getTypeParameters().length > 0 && + !((PsiClass)resolved).hasModifierProperty(PsiModifier.STATIC) && + ((PsiClass)resolved).getTypeParameters().length == 0) { return HighlightInfo.createHighlightInfo(HighlightInfoType.ERROR, typeElement, JavaErrorMessages.message("illegal.generic.type.for.instanceof")); } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IllegalGenericTypeInInstanceof.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IllegalGenericTypeInInstanceof.java index eefe123b537b..52871e84f273 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IllegalGenericTypeInInstanceof.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IllegalGenericTypeInInstanceof.java @@ -37,3 +37,17 @@ class BreakpointTree { } class Node {} class XBreakpoint{} + +public class GenericInnerClass { + private void problem( Base base ) { + if ( base instanceof First) {} + } + + private class Base { + } + + private class First extends Base { + } + +} +