From 01c9bba9a7e764999c4a7d97b341493538ab6c69 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 30 May 2014 19:52:48 +0400 Subject: [PATCH] old inference: ignore java 1.6 bug in new versions (IDEA-125744) --- .../impl/source/resolve/PsiOldInferenceHelper.java | 3 ++- .../genericsHighlighting/IDEA125744.java | 14 ++++++++++++++ .../daemon/GenericsHighlightingTest.java | 3 ++- 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.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 fdcbc96770cb..fc3f1ad5d44a 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 @@ -744,7 +744,8 @@ public class PsiOldInferenceHelper implements PsiInferenceHelper { if (guess != null && !guess.equals(PsiType.NULL) && constraint.getSecond() == ConstraintType.SUPERTYPE && - guess instanceof PsiIntersectionType) { + guess instanceof PsiIntersectionType && + !JavaVersionService.getInstance().isAtLeast(parent, JavaSdkVersion.JDK_1_7)) { for (PsiType conjuct : ((PsiIntersectionType)guess).getConjuncts()) { if (!conjuct.isAssignableFrom(expectedType)) { return FAILED_INFERENCE; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java new file mode 100644 index 000000000000..38580705a3c4 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java @@ -0,0 +1,14 @@ +class A {} +interface B {} + +class MyTest { + public M getInvokedMember() { + return null; + } +} + +class Bar { + void f(MyTest myTest) { + B member = myTest.getInvokedMember(); + } +} 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 62bd61da7c4f..d2d4c2b3226c 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java @@ -82,7 +82,7 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { public void testUncheckedOverriding() { doTest5(true); } public void testWildcardTypes() { doTest5(true); } public void testConvertibleTypes() { doTest5(true); } - public void testIntersectionTypes() { doTest7Incompatibility(true); } + public void testIntersectionTypes() { doTest6(true); } public void testVarargs() { doTest5(true); } public void testTypeArgsOnRaw() { doTest5(false); } public void testConditionalExpression() { doTest5(false); } @@ -354,6 +354,7 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { public void testIDEA125031() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } public void testIDEA24479() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } public void testIDEA118536() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } + public void testIDEA125744() { 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()));