From e6ea7bc88c6b917a85620919e9e633ab94dd8e37 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 1 Oct 2013 15:09:09 +0200 Subject: [PATCH] accept type arguments on raw types for > 1.6 javac --- .../daemon/impl/analysis/GenericsHighlightUtil.java | 7 +++++-- .../genericsHighlighting/TypeArgumentsOnRawType17.java | 4 ++-- .../genericsHighlighting8/TypeArgumentsOnRawType17.java | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java index 6b76e26d4025..b1e45fe548da 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java @@ -1128,9 +1128,12 @@ public class GenericsHighlightUtil { if (element instanceof PsiMethod) { if (((PsiMethod)element).findSuperMethods().length > 0) return null; if (qualifier instanceof PsiReferenceExpression){ - final PsiClass typeParameter = PsiUtil.resolveClassInType(((PsiReferenceExpression)qualifier).getType()); + final PsiType type = ((PsiReferenceExpression)qualifier).getType(); + final boolean isJavac7 = JavaVersionService.getInstance().isAtLeast(containingClass, JavaSdkVersion.JDK_1_7); + if (type instanceof PsiClassType && isJavac7 && ((PsiClassType)type).isRaw()) return null; + final PsiClass typeParameter = PsiUtil.resolveClassInType(type); if (typeParameter instanceof PsiTypeParameter) { - if (JavaVersionService.getInstance().isAtLeast(containingClass, JavaSdkVersion.JDK_1_7)) return null; + if (isJavac7) return null; for (PsiClassType classType : typeParameter.getExtendsListTypes()) { final PsiClass resolve = classType.resolve(); if (resolve != null) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/TypeArgumentsOnRawType17.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/TypeArgumentsOnRawType17.java index f586b18a8a1d..85c3ba00b184 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/TypeArgumentsOnRawType17.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/TypeArgumentsOnRawType17.java @@ -15,7 +15,7 @@ abstract class B { public abstract > void foo(); void bar(T x){ B a = null; - a.> foo(); + a.> foo(); x.> foo(); } } @@ -37,7 +37,7 @@ abstract class B1 { public abstract > void foo(); void bar(T x){ B1 a = null; - a.> foo(); + a.> foo(); x.> foo(); } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/TypeArgumentsOnRawType17.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/TypeArgumentsOnRawType17.java index f586b18a8a1d..85c3ba00b184 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/TypeArgumentsOnRawType17.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/TypeArgumentsOnRawType17.java @@ -15,7 +15,7 @@ abstract class B { public abstract > void foo(); void bar(T x){ B a = null; - a.> foo(); + a.> foo(); x.> foo(); } } @@ -37,7 +37,7 @@ abstract class B1 { public abstract > void foo(); void bar(T x){ B1 a = null; - a.> foo(); + a.> foo(); x.> foo(); } }