author | erikj |
Tue, 12 Sep 2017 19:03:39 +0200 | |
changeset 47216 | 71c04702a3d5 |
parent 29776 | langtools/test/tools/javac/generics/diamond/neg/Neg12.java@984a79b71cfe |
permissions | -rw-r--r-- |
29776
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
1 |
/* |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
2 |
* @test /nodynamiccopyright/ |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
3 |
* @bug 8062373 |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
4 |
* |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
5 |
* @summary Test diamond + anonymous classes with non-denotable types |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
6 |
* @author mcimadamore |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
7 |
* @compile/fail/ref=Neg12.out Neg12.java -XDrawDiagnostics |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
8 |
* |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
9 |
*/ |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
10 |
|
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
11 |
class Neg12 { |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
12 |
static class Foo<X> { |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
13 |
Foo(X x) { } |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
14 |
} |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
15 |
|
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
16 |
static class DoubleFoo<X,Y> { |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
17 |
DoubleFoo(X x,Y y) { } |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
18 |
} |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
19 |
|
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
20 |
static class TripleFoo<X,Y,Z> { |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
21 |
TripleFoo(X x,Y y,Z z) { } |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
22 |
} |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
23 |
|
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
24 |
Foo<? extends Integer> fi = new Foo<>(1); |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
25 |
Foo<?> fw = new Foo<>(fi) {}; // Error. |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
26 |
Foo<?> fw1 = new Foo<>(fi); // OK. |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
27 |
Foo<? extends Double> fd = new Foo<>(3.0); |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
28 |
DoubleFoo<?,?> dw = new DoubleFoo<>(fi,fd) {}; // Error. |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
29 |
DoubleFoo<?,?> dw1 = new DoubleFoo<>(fi,fd); // OK. |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
30 |
Foo<String> fs = new Foo<>("one"); |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
31 |
TripleFoo<?,?,?> tw = new TripleFoo<>(fi,fd,fs) {}; // Error. |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
32 |
TripleFoo<?,?,?> tw1 = new TripleFoo<>(fi,fd,fs); // OK. |
984a79b71cfe
8062373: Project Coin: diamond and anonymous classes
sadayapalam
parents:
diff
changeset
|
33 |
} |