From 88a9ace2c1dd4f2620f8b8a064d1c22fd549b78d Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 2 Jun 2014 18:32:51 +0400 Subject: [PATCH] old inference: take only EQUALS bounds from sibling param (IDEA-119757) --- .../source/resolve/PsiOldInferenceHelper.java | 8 -------- .../genericsHighlighting/IDEA119757.java | 16 ++++++++++++++++ .../daemon/GenericsHighlightingTest.java | 1 + 3 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiOldInferenceHelper.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiOldInferenceHelper.java index fc3f1ad5d44a..c6bb3a4ef0e9 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiOldInferenceHelper.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiOldInferenceHelper.java @@ -249,14 +249,6 @@ public class PsiOldInferenceHelper implements PsiInferenceHelper { } break OtherParameters; } - else if (currentConstraintType == ConstraintType.SUPERTYPE) { - if (PsiType.NULL.equals(substitutionFromBounds)) { - substitutionFromBounds = currentSubstitution; - } - else { - substitutionFromBounds = GenericsUtil.getLeastUpperBound(substitutionFromBounds, currentSubstitution, myManager); - } - } } } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java new file mode 100644 index 000000000000..d3e018e64c34 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java @@ -0,0 +1,16 @@ +import java.util.List; + +class Foo { + Foo(List l) { + } +} +class Bar { + void foo(Foo foo) {} + + void bar(List l) { + foo(new Foo<>(l)); + foo(f(l)); + } + + Foo f(List l) {return null;} +} 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 84d54aced028..82ea95d3ac4c 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java @@ -361,6 +361,7 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { public void testIDEA24496() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } public void testIDEA58692() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } public void testIDEA57290() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } + public void testIDEA119757() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } //jdk should propagate LL 1.4 but actually it provides LL 1.7?! public void testCastObjectToIntJdk14() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_4, false); }