| library test; | |
| abstract class I<T> { | |
| void f1(T x); | |
| void f2(T x); | |
| } | |
| class C<U> implements I<int> { | |
| void f1(int x) {} | |
| void f2(int x, [U y]) {} | |
| } | |
| class D<U> extends C<U> { | |
| void f1(int x) {} | |
| void f2(int x, [U y]) {} | |
| } | |
| void g1(C<num> c) {} | |
| void g2(I<num> i) {} | |
| void g3(C<num> c) {} | |
| void g4(D<num> d) {} | |
| void g5(D<num> d) {} | |
| void main() {} | |
| void test() {} |