Thu, 06 Jun 2013 15:33:40 +0100
8008627: Compiler mishandles three-way return-type-substitutability
Summary: Compiler should not enforce an order in how ambiguous methods should be resolved
Reviewed-by: jjg, vromero
1 /*
2 * @test /nodynamiccopyright/
3 * @summary check that abstract methods are compatible with inherited defaults
4 * @compile/fail/ref=Neg05.out -XDrawDiagnostics Neg05.java
5 */
7 class Neg05 {
8 interface IA1 { default Number m() { return Neg05.m1(this); } }
9 interface IA2 extends IA1 { default Integer m() { return Neg05.m2(this); } }
10 interface IA3 extends IA2 { Number m(); } //error
12 static class C implements IA3{}
14 static int m1(IA1 a) { return 0; }
15 static int m2(IA2 b) { return 0; }
16 }