super wildcard processing (IDEA-62529 )

This commit is contained in:
anna
2010-12-07 17:51:28 +03:00
parent 294eb992e0
commit 19ccd895cb
2 changed files with 12 additions and 0 deletions

View File

@@ -161,4 +161,15 @@ class CollectionHelper {
final Collection<Number> numbers4 = CollectionHelper.<Number>convertUp(integers4);
numbers4.hashCode();
}
}
//IDEA-62529
class My<T> {
private Class<? super T> getSuperclass(){
return null;
}
public void test() {
if (getSuperclass() == List.class);
}
}

View File

@@ -60,6 +60,7 @@ public class TypesDistinctProver {
final PsiType superBound = ((PsiWildcardType)type1).getSuperBound();
if (superBound instanceof PsiArrayType &&
proveArrayTypeDistinct(((PsiWildcardType)type1).getManager().getProject(), (PsiArrayType)superBound, type2)) return true;
final PsiClass boundClass1 = PsiUtil.resolveClassInType(superBound);
if (boundClass1 == null || boundClass1 instanceof PsiTypeParameter) return false;
return !InheritanceUtil.isInheritorOrSelf(boundClass1, psiClass2, true);