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