author | mcimadamore |
Sat, 17 Nov 2012 19:01:03 +0000 | |
changeset 14547 | 86d8d242b0c4 |
parent 14443 | 91c05eb19277 |
child 19934 | 1d8232b1aa18 |
permissions | -rw-r--r-- |
14443
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
1 |
/* |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
2 |
* @test /nodynamiccopyright/ |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
3 |
* @summary check that re-abstraction works properly |
14547 | 4 |
* @compile/fail/ref=Neg03.out -XDrawDiagnostics Neg03.java |
14443
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
5 |
*/ |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
6 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
7 |
class Neg03 { |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
8 |
interface A { |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
9 |
default void m() { Neg03.one(this); } |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
10 |
} |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
11 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
12 |
interface B { |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
13 |
default void m() { Neg03.two(this); } |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
14 |
} |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
15 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
16 |
interface C extends A, B { |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
17 |
default void m() { Neg03.one(this); } |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
18 |
} |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
19 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
20 |
static class X implements C, A { } //ok - ignore extraneous remix of A |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
21 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
22 |
interface D extends A, B { |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
23 |
void m(); // ok - m() is not reabstracted! |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
24 |
} |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
25 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
26 |
static class Y implements D, A { } // invalid - abstract D.m() |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
27 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
28 |
interface E extends A { |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
29 |
void m(); // reabstraction of m() |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
30 |
} |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
31 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
32 |
static class W implements D, E { } // invalid - abstracts D.m()/E.m() |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
33 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
34 |
static class Z implements D, A, B { } // invalid - abstract D.m() |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
35 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
36 |
static void one(Object a) { } |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
37 |
static void two(Object a) { } |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
38 |
} |