Mon, 21 May 2012 16:10:14 -0700
7157798: Add 6 test scenarios for testing inheritance of multiple same-name methods from mulitple interfaces
Reviewed-by: mcimadamore
Contributed-by: sue.wei@oracle.com
aoqi@0 | 1 | /** |
aoqi@0 | 2 | * @test /nodynamiccopyright/ |
aoqi@0 | 3 | * @bug 7062745 7157798 |
aoqi@0 | 4 | * @summary Negative test of conflicting same-name methods inherited from multiple interfaces when return type not compatible |
aoqi@0 | 5 | * @compile/fail/ref=Test3.out -Werror -Xlint:unchecked -XDrawDiagnostics Test3.java |
aoqi@0 | 6 | */ |
aoqi@0 | 7 | |
aoqi@0 | 8 | import java.util.List; |
aoqi@0 | 9 | import java.io.Serializable; |
aoqi@0 | 10 | |
aoqi@0 | 11 | interface A { int m(); } |
aoqi@0 | 12 | interface B { Integer m(); } |
aoqi@0 | 13 | |
aoqi@0 | 14 | interface AB extends A, B {} //error |
aoqi@0 | 15 | |
aoqi@0 | 16 | interface C { List<Integer> m(); } |
aoqi@0 | 17 | interface D { List<Number> m(); } |
aoqi@0 | 18 | |
aoqi@0 | 19 | interface CD extends C, D {} //error |
aoqi@0 | 20 | |
aoqi@0 | 21 | interface E<T> { T m(); } |
aoqi@0 | 22 | interface F<T> { T m(); } |
aoqi@0 | 23 | interface G { Serializable m(); } |
aoqi@0 | 24 | |
aoqi@0 | 25 | interface BE extends B, E<Number> {} //ok, covariant return |
aoqi@0 | 26 | |
aoqi@0 | 27 | interface BE2<T> extends B, E<T> {} //error |
aoqi@0 | 28 | |
aoqi@0 | 29 | interface EF<T> extends E<T>, F<T> {} //ok |
aoqi@0 | 30 | |
aoqi@0 | 31 | interface EF2<U, V extends U> extends E<U>, F<V> {} //ok, covariant return |
aoqi@0 | 32 | |
aoqi@0 | 33 | interface EF3<U, V> extends E<U>, F<V> {} //error |
aoqi@0 | 34 | |
aoqi@0 | 35 | interface EG<T extends Number> extends E<T>, G {} //ok |
aoqi@0 | 36 | |
aoqi@0 | 37 | interface EFG<U extends Serializable, V extends Serializable> extends E<U>, F<V>, G {} //error |