Fri, 24 Apr 2020 03:58:51 +0100
Merge
jfranck@2020 | 1 | /* @test /nodynamiccopyright/ |
jfranck@2020 | 2 | * @bug 7192246 |
mcimadamore@1393 | 3 | * @summary check that ill-formed MI hierarchies do not compile |
mcimadamore@1415 | 4 | * @compile/fail/ref=Neg02.out -XDrawDiagnostics Neg02.java |
mcimadamore@1393 | 5 | */ |
mcimadamore@1393 | 6 | |
mcimadamore@1393 | 7 | class Neg02 { |
mcimadamore@1393 | 8 | interface A { |
mcimadamore@1393 | 9 | default void m() { Neg02.impl(this); } |
mcimadamore@1393 | 10 | } |
mcimadamore@1393 | 11 | |
mcimadamore@1393 | 12 | interface B { |
mcimadamore@1393 | 13 | default void m() { Neg02.impl(this); } |
mcimadamore@1393 | 14 | } |
mcimadamore@1393 | 15 | |
mcimadamore@1393 | 16 | static class X implements A, B { } //error |
mcimadamore@1393 | 17 | |
mcimadamore@1393 | 18 | void test(X x) { |
mcimadamore@1393 | 19 | x.m(); |
mcimadamore@1393 | 20 | ((A)x).m(); |
mcimadamore@1393 | 21 | ((B)x).m(); |
mcimadamore@1393 | 22 | } |
mcimadamore@1393 | 23 | |
mcimadamore@1393 | 24 | static void impl(A a) { } |
mcimadamore@1393 | 25 | static void impl(B b) { } |
mcimadamore@1393 | 26 | } |