test/tools/javac/defaultMethods/Neg03.java

Wed, 14 Nov 2018 10:18:25 -0800

author
diazhou
date
Wed, 14 Nov 2018 10:18:25 -0800
changeset 3762
7909abb85562
parent 2020
bb7271e64ef6
child 2525
2eb010b6cb22
permissions
-rw-r--r--

Added tag jdk8u201-b04 for changeset a7f48b9dfb82

     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