IDEA-123338

This commit is contained in:
Anna Kozlova
2014-04-10 15:25:04 +02:00
parent 52951cfbfe
commit 6f7f761be5
3 changed files with 18 additions and 2 deletions

View File

@@ -719,8 +719,11 @@ public class JavaMethodsConflictResolver implements PsiConflictResolver{
LOG.assertTrue(typeParameter != null);
if (!substitutor.getSubstitutionMap().containsKey(typeParameter)) {
PsiType type = siteSubstitutor.substitute(typeParameter);
if (type instanceof PsiClassType && ((PsiClassType)type).resolve() instanceof PsiTypeParameter) {
type = TypeConversionUtil.erasure(type, siteSubstitutor);
if (type instanceof PsiClassType) {
final PsiClass aClass = ((PsiClassType)type).resolve();
if (aClass instanceof PsiTypeParameter && ((PsiTypeParameter)aClass).getOwner() == typeParameter.getOwner()) {
type = TypeConversionUtil.erasure(type, siteSubstitutor);
}
}
substitutor = substitutor.put(typeParameter, type);
} else {

View File

@@ -0,0 +1,12 @@
class Aaa<Ta> {
class Inner {}
void doSmth(final Inner inner) {}
}
class Bbb<T> extends Aaa<T> {
class SubInner extends Aaa<T>.Inner {}
void doSmth(final SubInner inner) {}
void ambiguousCall() {
doSmth (new SubInner());
}
}

View File

@@ -344,6 +344,7 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase {
public void testIDEA123352() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
public void testIDEA123518() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
public void testIDEA64103() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
public void testIDEA123338() { 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()));