14 Foo(V x) {} |
14 Foo(V x) {} |
15 <Z> Foo(V x, Z z) {} |
15 <Z> Foo(V x, Z z) {} |
16 } |
16 } |
17 |
17 |
18 void testSimple() { |
18 void testSimple() { |
19 Foo<String> f1 = new Foo<>(""); //new Foo<Integer> created |
19 Foo<String> f1 = new Foo<>(""); |
20 Foo<? extends String> f2 = new Foo<>(""); //new Foo<Integer> created |
20 Foo<? extends String> f2 = new Foo<>(""); |
21 Foo<?> f3 = new Foo<>(""); //new Foo<Object> created |
21 Foo<?> f3 = new Foo<>(""); |
22 Foo<? super String> f4 = new Foo<>(""); //new Foo<Object> created |
22 Foo<? super String> f4 = new Foo<>(""); |
23 |
23 |
24 Foo<String> f5 = new Foo<>(""){}; //new Foo<Integer> created |
24 Foo<String> f5 = new Foo<>(""){}; |
25 Foo<? extends String> f6 = new Foo<>(""){}; //new Foo<Integer> created |
25 Foo<? extends String> f6 = new Foo<>(""){}; |
26 Foo<?> f7 = new Foo<>(""){}; //new Foo<Object> created |
26 Foo<?> f7 = new Foo<>(""){}; |
27 Foo<? super String> f8 = new Foo<>(""){}; //new Foo<Object> created |
27 Foo<? super String> f8 = new Foo<>(""){}; |
28 |
28 |
29 Foo<String> f9 = new Foo<>("", ""); //new Foo<Integer> created |
29 Foo<String> f9 = new Foo<>("", ""); |
30 Foo<? extends String> f10 = new Foo<>("", ""); //new Foo<Integer> created |
30 Foo<? extends String> f10 = new Foo<>("", ""); |
31 Foo<?> f11 = new Foo<>("", ""); //new Foo<Object> created |
31 Foo<?> f11 = new Foo<>("", ""); |
32 Foo<? super String> f12 = new Foo<>("", ""); //new Foo<Object> created |
32 Foo<? super String> f12 = new Foo<>("", ""); |
33 |
33 |
34 Foo<String> f13 = new Foo<>("", ""){}; //new Foo<Integer> created |
34 Foo<String> f13 = new Foo<>("", ""){}; |
35 Foo<? extends String> f14 = new Foo<>("", ""){}; //new Foo<Integer> created |
35 Foo<? extends String> f14 = new Foo<>("", ""){}; |
36 Foo<?> f15 = new Foo<>("", ""){}; //new Foo<Object> created |
36 Foo<?> f15 = new Foo<>("", ""){}; |
37 Foo<? super String> f16 = new Foo<>("", ""){}; //new Foo<Object> created |
37 Foo<? super String> f16 = new Foo<>("", ""){}; |
38 } |
38 } |
39 |
39 |
40 void testQualified_1() { |
40 void testQualified_1() { |
41 Foo<String> f1 = new Neg03<U>.Foo<>(""); //new Foo<Integer> created |
41 Foo<String> f1 = new Neg03<U>.Foo<>(""); |
42 Foo<? extends String> f2 = new Neg03<U>.Foo<>(""); //new Foo<Integer> created |
42 Foo<? extends String> f2 = new Neg03<U>.Foo<>(""); |
43 Foo<?> f3 = new Neg03<U>.Foo<>(""); //new Foo<Object> created |
43 Foo<?> f3 = new Neg03<U>.Foo<>(""); |
44 Foo<? super String> f4 = new Neg03<U>.Foo<>(""); //new Foo<Object> created |
44 Foo<? super String> f4 = new Neg03<U>.Foo<>(""); |
45 |
45 |
46 Foo<String> f5 = new Neg03<U>.Foo<>(""){}; //new Foo<Integer> created |
46 Foo<String> f5 = new Neg03<U>.Foo<>(""){}; |
47 Foo<? extends String> f6 = new Neg03<U>.Foo<>(""){}; //new Foo<Integer> created |
47 Foo<? extends String> f6 = new Neg03<U>.Foo<>(""){}; |
48 Foo<?> f7 = new Neg03<U>.Foo<>(""){}; //new Foo<Object> created |
48 Foo<?> f7 = new Neg03<U>.Foo<>(""){}; |
49 Foo<? super String> f8 = new Neg03<U>.Foo<>(""){}; //new Foo<Object> created |
49 Foo<? super String> f8 = new Neg03<U>.Foo<>(""){}; |
50 |
50 |
51 Foo<String> f9 = new Neg03<U>.Foo<>("", ""); //new Foo<Integer> created |
51 Foo<String> f9 = new Neg03<U>.Foo<>("", ""); |
52 Foo<? extends String> f10 = new Neg03<U>.Foo<>("", ""); //new Foo<Integer> created |
52 Foo<? extends String> f10 = new Neg03<U>.Foo<>("", ""); |
53 Foo<?> f11 = new Neg03<U>.Foo<>("", ""); //new Foo<Object> created |
53 Foo<?> f11 = new Neg03<U>.Foo<>("", ""); |
54 Foo<? super String> f12 = new Neg03<U>.Foo<>("", ""); //new Foo<Object> created |
54 Foo<? super String> f12 = new Neg03<U>.Foo<>("", ""); |
55 |
55 |
56 Foo<String> f13 = new Neg03<U>.Foo<>("", ""){}; //new Foo<Integer> created |
56 Foo<String> f13 = new Neg03<U>.Foo<>("", ""){}; |
57 Foo<? extends String> f14 = new Neg03<U>.Foo<>("", ""){}; //new Foo<Integer> created |
57 Foo<? extends String> f14 = new Neg03<U>.Foo<>("", ""){}; |
58 Foo<?> f15 = new Neg03<U>.Foo<>("", ""){}; //new Foo<Object> created |
58 Foo<?> f15 = new Neg03<U>.Foo<>("", ""){}; |
59 Foo<? super String> f16 = new Neg03<U>.Foo<>("", ""){}; //new Foo<Object> created |
59 Foo<? super String> f16 = new Neg03<U>.Foo<>("", ""){}; |
60 } |
60 } |
61 |
61 |
62 void testQualified_2(Neg03<U> n) { |
62 void testQualified_2(Neg03<U> n) { |
63 Foo<String> f1 = n.new Foo<>(""); //new Foo<Integer> created |
63 Foo<String> f1 = n.new Foo<>(""); |
64 Foo<? extends String> f2 = n.new Foo<>(""); //new Foo<Integer> created |
64 Foo<? extends String> f2 = n.new Foo<>(""); |
65 Foo<?> f3 = n.new Foo<>(""); //new Foo<Integer> created |
65 Foo<?> f3 = n.new Foo<>(""); |
66 Foo<? super String> f4 = n.new Foo<>(""); //new Foo<Integer> created |
66 Foo<? super String> f4 = n.new Foo<>(""); |
67 |
67 |
68 Foo<String> f5 = n.new Foo<>(""){}; //new Foo<Integer> created |
68 Foo<String> f5 = n.new Foo<>(""){}; |
69 Foo<? extends String> f6 = n.new Foo<>(""){}; //new Foo<Integer> created |
69 Foo<? extends String> f6 = n.new Foo<>(""){}; |
70 Foo<?> f7 = n.new Foo<>(""){}; //new Foo<Integer> created |
70 Foo<?> f7 = n.new Foo<>(""){}; |
71 Foo<? super String> f8 = n.new Foo<>(""){}; //new Foo<Integer> created |
71 Foo<? super String> f8 = n.new Foo<>(""){}; |
72 |
72 |
73 Foo<String> f9 = n.new Foo<>("", ""); //new Foo<Integer> created |
73 Foo<String> f9 = n.new Foo<>("", ""); |
74 Foo<? extends String> f10 = n.new Foo<>("", ""); //new Foo<Integer> created |
74 Foo<? extends String> f10 = n.new Foo<>("", ""); |
75 Foo<?> f11 = n.new Foo<>("", ""); //new Foo<Integer> created |
75 Foo<?> f11 = n.new Foo<>("", ""); |
76 Foo<? super String> f12 = n.new Foo<>("", ""); //new Foo<Integer> created |
76 Foo<? super String> f12 = n.new Foo<>("", ""); |
77 |
77 |
78 Foo<String> f13 = n.new Foo<>("", ""){}; //new Foo<Integer> created |
78 Foo<String> f13 = n.new Foo<>("", ""){}; |
79 Foo<? extends String> f14 = n.new Foo<>("", ""){}; //new Foo<Integer> created |
79 Foo<? extends String> f14 = n.new Foo<>("", ""){}; |
80 Foo<?> f15 = n.new Foo<>("", ""){}; //new Foo<Integer> created |
80 Foo<?> f15 = n.new Foo<>("", ""){}; |
81 Foo<? super String> f16 = n.new Foo<>("", ""){}; //new Foo<Integer> created |
81 Foo<? super String> f16 = n.new Foo<>("", ""){}; |
82 } |
82 } |
83 } |
83 } |