Neg01.java revision 382:8109aa93b212
1/*
2 * @test /nodynamiccopyright/
3 * @bug 6840638
4 *
5 * @summary  Project Coin: Improved Type Inference for Generic Instance Creation (aka 'diamond')
6 * @author mcimadamore
7 * @compile/fail/ref=Neg01.out Neg01.java -source 1.7 -XDrawDiagnostics
8 *
9 */
10
11class Neg01<X extends Number> {
12
13    Neg01(X x) {}
14
15    <Z> Neg01(X x, Z z) {}
16
17    void test() {
18        Neg01<String> n1 = new Neg01<>(""); //new Foo<Integer> created
19        Neg01<? extends String> n2 = new Neg01<>(""); //new Foo<Integer> created
20        Neg01<?> n3 = new Neg01<>(""); //new Foo<Object> created
21        Neg01<? super String> n4 = new Neg01<>(""); //new Foo<Object> created
22
23        Neg01<String> n5 = new Neg01<>(""){}; //new Foo<Integer> created
24        Neg01<? extends String> n6 = new Neg01<>(""){}; //new Foo<Integer> created
25        Neg01<?> n7 = new Neg01<>(""){}; //new Foo<Object> created
26        Neg01<? super String> n8 = new Neg01<>(""){}; //new Foo<Object> created
27
28        Neg01<String> n9 = new Neg01<>("", ""); //new Foo<Integer> created
29        Neg01<? extends String> n10 = new Neg01<>("", ""); //new Foo<Integer> created
30        Neg01<?> n11 = new Neg01<>("", ""); //new Foo<Object> created
31        Foo<? super String> n12 = new Neg01<>("", ""); //new Foo<Object> created
32
33        Neg01<String> n13 = new Neg01<>("", ""){}; //new Foo<Integer> created
34        Neg01<? extends String> n14 = new Neg01<>("", ""){}; //new Foo<Integer> created
35        Neg01<?> n15 = new Neg01<>("", ""){}; //new Foo<Object> created
36        Neg01<? super String> n16 = new Neg01<>("", ""){}; //new Foo<Object> created
37    }
38}
39