author | mcimadamore |
Sun, 04 Nov 2012 10:59:42 +0000 | |
changeset 14443 | 91c05eb19277 |
child 14547 | 86d8d242b0c4 |
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 ill-formed MI hierarchies do not compile |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
4 |
* @compile/fail/ref=Neg02.out -XDallowDefaultMethods -XDrawDiagnostics Neg02.java |
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 Neg02 { |
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() { Neg02.impl(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() { Neg02.impl(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 |
static class X implements A, B { } //error |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
17 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
18 |
void test(X x) { |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
19 |
x.m(); |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
20 |
((A)x).m(); |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
21 |
((B)x).m(); |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
22 |
} |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
23 |
|
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
24 |
static void impl(A a) { } |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
25 |
static void impl(B b) { } |
91c05eb19277
7192246: Add type-checking support for default methods
mcimadamore
parents:
diff
changeset
|
26 |
} |