calculate bound based on all type arguments (IDEA-57334)

This commit is contained in:
anna
2013-07-17 20:31:44 +02:00
parent e4fd4fe2b0
commit 823e008db1
3 changed files with 73 additions and 4 deletions
@@ -0,0 +1,41 @@
abstract class A<T, S> {
abstract <T> void foo(A<? extends T, ? extends T> x);
void bar(A<? extends Throwable, ? extends Exception> x){
foo(x);
}
}
abstract class A0<T, S> {
abstract <T> void foo(A0<? extends T, ? extends T> x);
void bar(A0<? extends Exception, ? extends Throwable> x){
foo(x);
}
}
abstract class A1<T, S> {
abstract <T> void foo(A1<? extends T, ? extends T> x);
void bar(A1<? extends Throwable, Exception> x){
foo(x);
}
}
abstract class A10<T, S> {
abstract <T> void foo(A10<? extends T, ? extends T> x);
void bar(A10<Throwable, Exception> x){
foo(x);
}
}
abstract class A2<T, S> {
abstract <T> void foo(A2<? super T, ? super T> x);
void bar(A2<? super Exception, ? super Throwable> x){
foo(x);
}
}
abstract class A20<T, S> {
abstract <T> void foo(A20<? super T, ? super T> x);
void bar(A20<? super Throwable, ? super Exception> x){
foo(x);
}
}