test/tools/javac/defaultMethods/Neg03.java

Sat, 07 Nov 2020 10:30:02 +0800

author
aoqi
date
Sat, 07 Nov 2020 10:30:02 +0800
changeset 3938
93012e2a5d1d
parent 2525
2eb010b6cb22
permissions
-rw-r--r--

Added tag mips-jdk8u275-b01 for changeset eb6ee6a5f2fe

     1 /* @test /nodynamiccopyright/
     2  * @bug 7192246
     3  * @summary check that re-abstraction works properly
     4  * @compile/fail/ref=Neg03.out -XDrawDiagnostics Neg03.java
     5  */
     7 class Neg03 {
     8     interface A {
     9         default void m() { Neg03.one(this); }
    10     }
    12     interface B {
    13         default void m() { Neg03.two(this); }
    14     }
    16     interface C extends A, B {
    17         default void m() { Neg03.one(this); }
    18     }
    20     static class X implements C, A { } //ok - ignore extraneous remix of A
    22     interface D extends A, B {
    23       void m();  // ok - m() is not reabstracted!
    24     }
    26     static class Y implements D, A { } // invalid - abstract D.m()
    28     interface E extends A {
    29         void m();  // reabstraction of m()
    30     }
    32     static class W implements D, E { } // invalid - abstracts D.m()/E.m()
    34     static class Z implements D, A, B { } // invalid - abstract D.m()
    36     static void one(Object a) {  }
    37     static void two(Object a) {  }
    38 }

mercurial