type param bound check fixed (IDEA-110869)

This commit is contained in:
anna
2013-07-23 18:38:42 +02:00
parent 12b08c4336
commit d3fcd37b20
5 changed files with 23 additions and 4 deletions
@@ -0,0 +1,12 @@
class A {
}
abstract class B {
public <T extends A> T getA(Class<T> aClass) {
return null;
}
void foo(Class<?> aClass) {
A a = <error descr="Inferred type '?' for type parameter 'T' is not within its bound; should extend 'A'">getA(aClass)</error>;
}
}
@@ -2,12 +2,15 @@ import java.util.List;
abstract class B {
abstract <T> T[] foo(List<? super List<T>> x);
abstract <T> T foo0(List<? super List<T>> x);
abstract <T> T[] foo1(List<? extends List<T>> x);
abstract <T> T[] foo2(List<List<? super List<T>>> x);
void bar(List<List<?>> x, List<List<List<?>>> y){
foo(x) [0] = "";
foo1<error descr="'foo1(java.util.List<? extends java.util.List<T>>)' in 'B' cannot be applied to '(java.util.List<java.util.List<?>>)'">(x)</error> [0] = "";
foo2<error descr="'foo2(java.util.List<java.util.List<? super java.util.List<T>>>)' in 'B' cannot be applied to '(java.util.List<java.util.List<java.util.List<?>>>)'">(y)</error> [0] = "";
foo2<error descr="'foo2(java.util.List<java.util.List<? super java.util.List<java.lang.Object>>>)' in 'B' cannot be applied to '(java.util.List<java.util.List<java.util.List<?>>>)'">(y)</error> [0] = "";
String s = foo0(x);
}
}