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
aoqi@0 | 1 | /* |
aoqi@0 | 2 | * @test /nodynamiccopyright/ |
aoqi@0 | 3 | * @bug 7034019 |
aoqi@0 | 4 | * @summary ClassCastException in javac with conjunction types |
aoqi@0 | 5 | * |
aoqi@0 | 6 | * @compile/fail/ref=T7034019c.out -XDrawDiagnostics T7034019c.java |
aoqi@0 | 7 | */ |
aoqi@0 | 8 | |
aoqi@0 | 9 | class T7034019c { |
aoqi@0 | 10 | interface A { |
aoqi@0 | 11 | abstract <T extends Number> T foo(); |
aoqi@0 | 12 | } |
aoqi@0 | 13 | |
aoqi@0 | 14 | interface B { |
aoqi@0 | 15 | abstract <T> T foo(); |
aoqi@0 | 16 | } |
aoqi@0 | 17 | |
aoqi@0 | 18 | static class C<T extends A & B> { |
aoqi@0 | 19 | void test(T x) { |
aoqi@0 | 20 | x.foo(); |
aoqi@0 | 21 | } |
aoqi@0 | 22 | } |
aoqi@0 | 23 | } |