| interface A | |
| { | |
| abstract <T> void foo(); | |
| } | |
| interface B | |
| { | |
| abstract <T,S> void foo(); | |
| } | |
| class C<<error descr="'foo()' in 'B' clashes with 'foo()' in 'A'; both methods have same erasure, yet neither overrides the other"></error>T extends A & B> | |
| { | |
| void bar(T x) | |
| { | |
| x.foo<error descr="Ambiguous method call: both 'A.foo()' and 'B.foo()' match">()</error>; | |
| } | |
| } |