From f55b7ffa8dbe8e939383b1cd376abbc491b49b49 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Sat, 31 May 2014 19:23:39 +0400 Subject: [PATCH] equality asymmetry fixed (IDEA-118533) --- .../src/com/intellij/psi/util/PsiUtil.java | 4 +++- .../genericsHighlighting/IDEA112117.java | 15 +++++++++++++++ .../daemon/GenericsHighlightingTest.java | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java index 59040ecd8493..f5e5468fb202 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java @@ -569,8 +569,10 @@ public final class PsiUtil extends PsiUtilCore { if (typeParameters1.length != typeParameters2.length) return false; for (int i = 0; i < typeParameters1.length; i++) { final PsiType substituted2 = s2.substitute(typeParameters2[i]); + final PsiType substituted1 = s1.substitute(typeParameters1[i]); if (!Comparing.equal(s1.substituteWithBoundsPromotion(typeParameters1[i]), substituted2) && - !Comparing.equal(s1.substitute(typeParameters1[i]), substituted2)) return false; + !Comparing.equal(s2.substituteWithBoundsPromotion(typeParameters2[i]), substituted1) && + !Comparing.equal(substituted1, substituted2)) return false; } if (aClass.hasModifierProperty(PsiModifier.STATIC)) return true; final PsiClass containingClass1 = aClass.getContainingClass(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java new file mode 100644 index 000000000000..57b1c73999d9 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java @@ -0,0 +1,15 @@ +import java.io.Serializable; +import java.util.Set; + +class IdeaGenericsFail { + + public IdeaGenericsFail(Set> map) { + } + + public static class Klass { + } + + public static void main(final Set> map) { + new IdeaGenericsFail(map); + } +} \ No newline at end of file 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 9985dc2e1284..7db702fded42 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java @@ -357,6 +357,7 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { public void testIDEA125744() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } public void testIDEA125423() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } public void testIDEA118533() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); } + public void testIDEA112117() { 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()));