From 902e51a85623bb389ac1e49cac4acbf991f727fd Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 29 Apr 2014 18:03:42 +0400 Subject: [PATCH] substitute bounds (IDEA-123509) --- .../src/com/intellij/psi/impl/PsiSubstitutorImpl.java | 2 +- .../genericsHighlighting/IDEA123509.java | 9 +++++++++ .../genericsHighlighting/TypeWithinItsWildcardBound.java | 2 +- .../TypeWithinItsWildcardBound.java | 2 +- .../codeInsight/daemon/GenericsHighlightingTest.java | 1 + 5 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA123509.java diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java index d225ede6ef2d..aca0a698357a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java @@ -395,7 +395,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor { final PsiType[] boundTypes = typeParameter.getExtendsListTypes(); for (PsiType boundType : boundTypes) { if (TypeConversionUtil.isAssignable(erasure, boundType)) { - return boundType; + return boundType.accept(mySimpleSubstitutionVisitor); } } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA123509.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA123509.java new file mode 100644 index 000000000000..20ee7d9770c7 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA123509.java @@ -0,0 +1,9 @@ +class Test { + interface IDo {} + interface IDoable {} + interface IDoableFilter> {} + + > void foo(IDoableFilter filter_) { + IDoableFilter filter = filter_; + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/TypeWithinItsWildcardBound.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/TypeWithinItsWildcardBound.java index a7ada7896cfb..052761440739 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/TypeWithinItsWildcardBound.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/TypeWithinItsWildcardBound.java @@ -311,7 +311,7 @@ class WithingBounds { AA>> a3; A a4; - A<? super A> a5; + A<? super A> a5; A<A[]> a7; } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/TypeWithinItsWildcardBound.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/TypeWithinItsWildcardBound.java index a7ada7896cfb..052761440739 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/TypeWithinItsWildcardBound.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/TypeWithinItsWildcardBound.java @@ -311,7 +311,7 @@ class WithingBounds { AA>> a3; A a4; - A<? super A> a5; + A<? super A> a5; A<A[]> a7; } } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java index 3eb9577449c2..03c4c9b2156a 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java @@ -350,6 +350,7 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { public void testIDEA124271() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } public void testIDEA124352() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } public void testIDEA124019() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } + public void testIDEA123509() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } public void testJavaUtilCollections_NoVerify() throws Exception { PsiClass collectionsClass = getJavaFacade().findClass("java.util.Collections", GlobalSearchScope.moduleWithLibrariesScope(getModule()));