captures: replace type parameter in capture on substitution

This commit is contained in:
Anna Kozlova
2014-12-16 10:45:03 +01:00
parent 7933aad974
commit 811234ec46
3 changed files with 55 additions and 1 deletions
@@ -0,0 +1,34 @@
class B<T1,S> {}
abstract class A<T> {
<K> void baz5(B<K, K> a) {}
abstract B<T, ? super T> foo5();
void bar5(A<? super T> a) {
baz5<error descr="'baz5(B<capture<? super T>,capture<? super T>>)' in 'A' cannot be applied to '(B<capture<? super T>,capture<? super T>>)'">(a.foo5())</error>;
}
<K> void baz7(B<K, K> a) {}
abstract B<T, ? extends T> foo7();
void bar7(A<?> a) {
baz7<error descr="'baz7(B<capture<?>,capture<?>>)' in 'A' cannot be applied to '(B<capture<?>,capture<?>>)'">(a.foo7())</error>;
}
<K> void baz9(B<K, K> a) {}
abstract B<T, ? extends T> foo9();
void bar9(A<? extends T> a) {
baz9<error descr="'baz9(B<capture<? extends T>,capture<? extends T>>)' in 'A' cannot be applied to '(B<capture<? extends T>,capture<? extends T>>)'">(a.foo9())</error>;
}
<K> void baz14(B<K, K> a) {}
abstract B<? super T, ? super T> foo14();
void bar14(A<? super T> a) {
baz14<error descr="'baz14(B<capture<? super T>,capture<? super T>>)' in 'A' cannot be applied to '(B<capture<? super T>,capture<? super T>>)'">(a.foo14())</error>;
}
<K> void baz24(B<K, K> a) {}
abstract B<? extends T, ? extends T> foo24();
void bar24(A<? extends T> a) {
baz24<error descr="'baz24(B<capture<? extends T>,capture<? extends T>>)' in 'A' cannot be applied to '(B<capture<? extends T>,capture<? extends T>>)'">(a.foo24())</error>;
}
}