From 4ea8185461a8f4a2ce68568dc3f92c71bd8a5df0 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 18 Jul 2013 19:46:09 +0200 Subject: [PATCH] fix method signature erased equality (IDEA-57391) --- .../src/com/intellij/psi/util/MethodSignatureUtil.java | 2 +- .../daemonCodeAnalyzer/genericsHighlighting/IDEA57391.java | 7 +++++++ .../codeInsight/daemon/GenericsHighlightingTest.java | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57391.java diff --git a/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureUtil.java b/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureUtil.java index 8692a22de0b1..077dc8019fa3 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureUtil.java @@ -379,7 +379,7 @@ public class MethodSignatureUtil { final PsiType[] superParameterTypes = superSignature.getParameterTypes(); for (int i = 0; i < subParameterTypes.length; i++) { PsiType type1 = subParameterTypes[i]; - PsiType type2 = TypeConversionUtil.erasure(superParameterTypes[i]); + PsiType type2 = TypeConversionUtil.erasure(superParameterTypes[i], superSignature.getSubstitutor()); if (!Comparing.equal(type1, type2)) return false; } return true; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57391.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57391.java new file mode 100644 index 000000000000..664b7c7d9068 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57391.java @@ -0,0 +1,7 @@ +abstract class B { + abstract void foo(T x, S y); +} + +class A extends B { + void foo(String x, String y) {} +} \ 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 e0baa7fc2a4c..268c9651a5ad 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/GenericsHighlightingTest.java @@ -299,6 +299,7 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase { public void testIDEA67835() { doTest5(false); } public void testIDEA67744() { doTest5(false); } public void testIDEA67682() { doTest5(false); } + public void testIDEA57391() { doTest5(false); } public void testJavaUtilCollections_NoVerify() throws Exception { PsiClass collectionsClass = getJavaFacade().findClass("java.util.Collections", GlobalSearchScope.moduleWithLibrariesScope(getModule()));