1.1 --- a/test/tools/javac/generics/diamond/neg/Neg03.java Thu Apr 22 16:54:44 2010 -0700 1.2 +++ b/test/tools/javac/generics/diamond/neg/Neg03.java Thu Apr 29 14:10:24 2010 -0700 1.3 @@ -1,10 +1,10 @@ 1.4 /* 1.5 * @test /nodynamiccopyright/ 1.6 - * @bug 6840638 1.7 + * @bug 6939620 1.8 * 1.9 - * @summary Project Coin: Improved Type Inference for Generic Instance Creation (aka 'diamond') 1.10 + * @summary Switch to 'complex' diamond inference scheme 1.11 * @author mcimadamore 1.12 - * @compile/fail/ref=Neg03.out Neg03.java -source 1.7 -XDrawDiagnostics 1.13 + * @compile/fail/ref=Neg03.out Neg03.java -XDrawDiagnostics 1.14 * 1.15 */ 1.16 1.17 @@ -16,68 +16,68 @@ 1.18 } 1.19 1.20 void testSimple() { 1.21 - Foo<String> f1 = new Foo<>(""); //new Foo<Integer> created 1.22 - Foo<? extends String> f2 = new Foo<>(""); //new Foo<Integer> created 1.23 - Foo<?> f3 = new Foo<>(""); //new Foo<Object> created 1.24 - Foo<? super String> f4 = new Foo<>(""); //new Foo<Object> created 1.25 + Foo<String> f1 = new Foo<>(""); 1.26 + Foo<? extends String> f2 = new Foo<>(""); 1.27 + Foo<?> f3 = new Foo<>(""); 1.28 + Foo<? super String> f4 = new Foo<>(""); 1.29 1.30 - Foo<String> f5 = new Foo<>(""){}; //new Foo<Integer> created 1.31 - Foo<? extends String> f6 = new Foo<>(""){}; //new Foo<Integer> created 1.32 - Foo<?> f7 = new Foo<>(""){}; //new Foo<Object> created 1.33 - Foo<? super String> f8 = new Foo<>(""){}; //new Foo<Object> created 1.34 + Foo<String> f5 = new Foo<>(""){}; 1.35 + Foo<? extends String> f6 = new Foo<>(""){}; 1.36 + Foo<?> f7 = new Foo<>(""){}; 1.37 + Foo<? super String> f8 = new Foo<>(""){}; 1.38 1.39 - Foo<String> f9 = new Foo<>("", ""); //new Foo<Integer> created 1.40 - Foo<? extends String> f10 = new Foo<>("", ""); //new Foo<Integer> created 1.41 - Foo<?> f11 = new Foo<>("", ""); //new Foo<Object> created 1.42 - Foo<? super String> f12 = new Foo<>("", ""); //new Foo<Object> created 1.43 + Foo<String> f9 = new Foo<>("", ""); 1.44 + Foo<? extends String> f10 = new Foo<>("", ""); 1.45 + Foo<?> f11 = new Foo<>("", ""); 1.46 + Foo<? super String> f12 = new Foo<>("", ""); 1.47 1.48 - Foo<String> f13 = new Foo<>("", ""){}; //new Foo<Integer> created 1.49 - Foo<? extends String> f14 = new Foo<>("", ""){}; //new Foo<Integer> created 1.50 - Foo<?> f15 = new Foo<>("", ""){}; //new Foo<Object> created 1.51 - Foo<? super String> f16 = new Foo<>("", ""){}; //new Foo<Object> created 1.52 + Foo<String> f13 = new Foo<>("", ""){}; 1.53 + Foo<? extends String> f14 = new Foo<>("", ""){}; 1.54 + Foo<?> f15 = new Foo<>("", ""){}; 1.55 + Foo<? super String> f16 = new Foo<>("", ""){}; 1.56 } 1.57 1.58 void testQualified_1() { 1.59 - Foo<String> f1 = new Neg03<U>.Foo<>(""); //new Foo<Integer> created 1.60 - Foo<? extends String> f2 = new Neg03<U>.Foo<>(""); //new Foo<Integer> created 1.61 - Foo<?> f3 = new Neg03<U>.Foo<>(""); //new Foo<Object> created 1.62 - Foo<? super String> f4 = new Neg03<U>.Foo<>(""); //new Foo<Object> created 1.63 + Foo<String> f1 = new Neg03<U>.Foo<>(""); 1.64 + Foo<? extends String> f2 = new Neg03<U>.Foo<>(""); 1.65 + Foo<?> f3 = new Neg03<U>.Foo<>(""); 1.66 + Foo<? super String> f4 = new Neg03<U>.Foo<>(""); 1.67 1.68 - Foo<String> f5 = new Neg03<U>.Foo<>(""){}; //new Foo<Integer> created 1.69 - Foo<? extends String> f6 = new Neg03<U>.Foo<>(""){}; //new Foo<Integer> created 1.70 - Foo<?> f7 = new Neg03<U>.Foo<>(""){}; //new Foo<Object> created 1.71 - Foo<? super String> f8 = new Neg03<U>.Foo<>(""){}; //new Foo<Object> created 1.72 + Foo<String> f5 = new Neg03<U>.Foo<>(""){}; 1.73 + Foo<? extends String> f6 = new Neg03<U>.Foo<>(""){}; 1.74 + Foo<?> f7 = new Neg03<U>.Foo<>(""){}; 1.75 + Foo<? super String> f8 = new Neg03<U>.Foo<>(""){}; 1.76 1.77 - Foo<String> f9 = new Neg03<U>.Foo<>("", ""); //new Foo<Integer> created 1.78 - Foo<? extends String> f10 = new Neg03<U>.Foo<>("", ""); //new Foo<Integer> created 1.79 - Foo<?> f11 = new Neg03<U>.Foo<>("", ""); //new Foo<Object> created 1.80 - Foo<? super String> f12 = new Neg03<U>.Foo<>("", ""); //new Foo<Object> created 1.81 + Foo<String> f9 = new Neg03<U>.Foo<>("", ""); 1.82 + Foo<? extends String> f10 = new Neg03<U>.Foo<>("", ""); 1.83 + Foo<?> f11 = new Neg03<U>.Foo<>("", ""); 1.84 + Foo<? super String> f12 = new Neg03<U>.Foo<>("", ""); 1.85 1.86 - Foo<String> f13 = new Neg03<U>.Foo<>("", ""){}; //new Foo<Integer> created 1.87 - Foo<? extends String> f14 = new Neg03<U>.Foo<>("", ""){}; //new Foo<Integer> created 1.88 - Foo<?> f15 = new Neg03<U>.Foo<>("", ""){}; //new Foo<Object> created 1.89 - Foo<? super String> f16 = new Neg03<U>.Foo<>("", ""){}; //new Foo<Object> created 1.90 + Foo<String> f13 = new Neg03<U>.Foo<>("", ""){}; 1.91 + Foo<? extends String> f14 = new Neg03<U>.Foo<>("", ""){}; 1.92 + Foo<?> f15 = new Neg03<U>.Foo<>("", ""){}; 1.93 + Foo<? super String> f16 = new Neg03<U>.Foo<>("", ""){}; 1.94 } 1.95 1.96 void testQualified_2(Neg03<U> n) { 1.97 - Foo<String> f1 = n.new Foo<>(""); //new Foo<Integer> created 1.98 - Foo<? extends String> f2 = n.new Foo<>(""); //new Foo<Integer> created 1.99 - Foo<?> f3 = n.new Foo<>(""); //new Foo<Integer> created 1.100 - Foo<? super String> f4 = n.new Foo<>(""); //new Foo<Integer> created 1.101 + Foo<String> f1 = n.new Foo<>(""); 1.102 + Foo<? extends String> f2 = n.new Foo<>(""); 1.103 + Foo<?> f3 = n.new Foo<>(""); 1.104 + Foo<? super String> f4 = n.new Foo<>(""); 1.105 1.106 - Foo<String> f5 = n.new Foo<>(""){}; //new Foo<Integer> created 1.107 - Foo<? extends String> f6 = n.new Foo<>(""){}; //new Foo<Integer> created 1.108 - Foo<?> f7 = n.new Foo<>(""){}; //new Foo<Integer> created 1.109 - Foo<? super String> f8 = n.new Foo<>(""){}; //new Foo<Integer> created 1.110 + Foo<String> f5 = n.new Foo<>(""){}; 1.111 + Foo<? extends String> f6 = n.new Foo<>(""){}; 1.112 + Foo<?> f7 = n.new Foo<>(""){}; 1.113 + Foo<? super String> f8 = n.new Foo<>(""){}; 1.114 1.115 - Foo<String> f9 = n.new Foo<>("", ""); //new Foo<Integer> created 1.116 - Foo<? extends String> f10 = n.new Foo<>("", ""); //new Foo<Integer> created 1.117 - Foo<?> f11 = n.new Foo<>("", ""); //new Foo<Integer> created 1.118 - Foo<? super String> f12 = n.new Foo<>("", ""); //new Foo<Integer> created 1.119 + Foo<String> f9 = n.new Foo<>("", ""); 1.120 + Foo<? extends String> f10 = n.new Foo<>("", ""); 1.121 + Foo<?> f11 = n.new Foo<>("", ""); 1.122 + Foo<? super String> f12 = n.new Foo<>("", ""); 1.123 1.124 - Foo<String> f13 = n.new Foo<>("", ""){}; //new Foo<Integer> created 1.125 - Foo<? extends String> f14 = n.new Foo<>("", ""){}; //new Foo<Integer> created 1.126 - Foo<?> f15 = n.new Foo<>("", ""){}; //new Foo<Integer> created 1.127 - Foo<? super String> f16 = n.new Foo<>("", ""){}; //new Foo<Integer> created 1.128 + Foo<String> f13 = n.new Foo<>("", ""){}; 1.129 + Foo<? extends String> f14 = n.new Foo<>("", ""){}; 1.130 + Foo<?> f15 = n.new Foo<>("", ""){}; 1.131 + Foo<? super String> f16 = n.new Foo<>("", ""){}; 1.132 } 1.133 }