From 8e532ed732cfe30db2cad0caf1afa1765993235b Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 6 Aug 2012 12:01:49 +0200 Subject: [PATCH] illegal generics instanceof (IDEA-89765) --- .../impl/analysis/GenericsHighlightUtil.java | 6 +++++- .../IllegalGenericTypeInInstanceof.java | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) 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 { + } + +} +