1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/test/tools/javac/generics/diamond/neg/Neg05.java Wed Apr 14 12:31:55 2010 +0100 1.3 @@ -0,0 +1,61 @@ 1.4 +/* 1.5 + * @test /nodynamiccopyright/ 1.6 + * @bug 6939620 1.7 + * 1.8 + * @summary Switch to 'complex' diamond inference scheme 1.9 + * @author mcimadamore 1.10 + * @compile/fail/ref=Neg05.out Neg05.java -XDrawDiagnostics 1.11 + * 1.12 + */ 1.13 + 1.14 +class Neg05<U> { 1.15 + 1.16 + class Foo<V> { 1.17 + Foo(V x) {} 1.18 + <Z> Foo(V x, Z z) {} 1.19 + } 1.20 + 1.21 + void testRare_1() { 1.22 + Neg05<?>.Foo<String> f1 = new Neg05.Foo<>(""); 1.23 + Neg05<?>.Foo<? extends String> f2 = new Neg05.Foo<>(""); 1.24 + Neg05<?>.Foo<?> f3 = new Neg05.Foo<>(""); 1.25 + Neg05<?>.Foo<? super String> f4 = new Neg05.Foo<>(""); 1.26 + 1.27 + Neg05<?>.Foo<String> f5 = new Neg05.Foo<>(""){}; 1.28 + Neg05<?>.Foo<? extends String> f6 = new Neg05.Foo<>(""){}; 1.29 + Neg05<?>.Foo<?> f7 = new Neg05.Foo<>(""){}; 1.30 + Neg05<?>.Foo<? super String> f8 = new Neg05.Foo<>(""){}; 1.31 + 1.32 + Neg05<?>.Foo<String> f9 = new Neg05.Foo<>("", ""); 1.33 + Neg05<?>.Foo<? extends String> f10 = new Neg05.Foo<>("", ""); 1.34 + Neg05<?>.Foo<?> f11 = new Neg05.Foo<>("", ""); 1.35 + Neg05<?>.Foo<? super String> f12 = new Neg05.Foo<>("", ""); 1.36 + 1.37 + Neg05<?>.Foo<String> f13 = new Neg05.Foo<>("", ""){}; 1.38 + Neg05<?>.Foo<? extends String> f14 = new Neg05.Foo<>("", ""){}; 1.39 + Neg05<?>.Foo<?> f15 = new Neg05.Foo<>("", ""){}; 1.40 + Neg05<?>.Foo<? super String> f16 = new Neg05.Foo<>("", ""){}; 1.41 + } 1.42 + 1.43 + void testRare_2(Neg05 n) { 1.44 + Neg05<?>.Foo<String> f1 = n.new Foo<>(""); 1.45 + Neg05<?>.Foo<? extends String> f2 = n.new Foo<>(""); 1.46 + Neg05<?>.Foo<?> f3 = n.new Foo<>(""); 1.47 + Neg05<?>.Foo<? super String> f4 = n.new Foo<>(""); 1.48 + 1.49 + Neg05<?>.Foo<String> f5 = n.new Foo<>(""){}; 1.50 + Neg05<?>.Foo<? extends String> f6 = n.new Foo<>(""){}; 1.51 + Neg05<?>.Foo<?> f7 = n.new Foo<>(""){}; 1.52 + Neg05<?>.Foo<? super String> f8 = n.new Foo<>(""){}; 1.53 + 1.54 + Neg05<?>.Foo<String> f9 = n.new Foo<>("", ""); 1.55 + Neg05<?>.Foo<? extends String> f10 = n.new Foo<>("", ""); 1.56 + Neg05<?>.Foo<?> f11 = n.new Foo<>("", ""); 1.57 + Neg05<?>.Foo<? super String> f12 = n.new Foo<>("", ""); 1.58 + 1.59 + Neg05<?>.Foo<String> f13 = n.new Foo<>("", ""){}; 1.60 + Neg05<?>.Foo<? extends String> f14 = n.new Foo<>("", ""){}; 1.61 + Neg05<?>.Foo<?> f15 = n.new Foo<>("", ""){}; 1.62 + Neg05<?>.Foo<? super String> f16 = n.new Foo<>("", ""){}; 1.63 + } 1.64 +}