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 parameter types not compatible |
aoqi@0 | 5 | * @compile/fail/ref=Test4.out -Werror -Xlint:unchecked -XDrawDiagnostics Test4.java |
aoqi@0 | 6 | */ |
aoqi@0 | 7 | |
aoqi@0 | 8 | import java.util.Set; |
aoqi@0 | 9 | import java.util.HashSet; |
aoqi@0 | 10 | |
aoqi@0 | 11 | interface A { void m(Set<Integer> s); } |
aoqi@0 | 12 | interface B { void m(Set<String> s); } |
aoqi@0 | 13 | interface C { void m(Set<?> s); } |
aoqi@0 | 14 | |
aoqi@0 | 15 | interface AB extends A, B {} //error |
aoqi@0 | 16 | |
aoqi@0 | 17 | interface AC extends A, C {} //error |
aoqi@0 | 18 | |
aoqi@0 | 19 | interface D<T> { void m(Set<T> s); } |
aoqi@0 | 20 | |
aoqi@0 | 21 | interface AD extends A, D<Integer> {} //OK |
aoqi@0 | 22 | |
aoqi@0 | 23 | interface AD2 extends A, D<Number> {} //error |
aoqi@0 | 24 | |
aoqi@0 | 25 | interface CD<T> extends C, D<T> {} //error |
aoqi@0 | 26 | |
aoqi@0 | 27 | interface E { <T> void m(Set<T> s); } |
aoqi@0 | 28 | |
aoqi@0 | 29 | interface DE<T> extends D<T>, E {} //error |