test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass3.java

changeset 2134
b0c086cd4520
parent 0
959103a6100f
equal deleted inserted replaced
2133:19e8eebfbe52 2134:b0c086cd4520
1 /*
2 * @test /nodynamiccopyright/
3 * @bug 8006733 8006775
4 * @summary Ensure behavior for nested types is correct.
5 * @author Werner Dietl
6 * @ignore
7 * @compile/fail/ref=CantAnnotateStaticClass3.out -XDrawDiagnostics CantAnnotateStaticClass3.java
8 */
9
10 import java.util.List;
11 import java.util.ArrayList;
12 import java.util.HashMap;
13 import java.lang.annotation.*;
14
15 class Top {
16 @Target(ElementType.TYPE_USE)
17 @interface TA {}
18
19 @Target(ElementType.TYPE_USE)
20 @interface TB {}
21
22 @Target(ElementType.TYPE_USE)
23 @interface TC {}
24
25 interface Outer {
26 class Inner {
27 // Object o1 = Top.this;
28 // Object o2 = Outer.this;
29 Object o3 = this;
30 }
31 static class SInner {
32 // Object o1 = Top.this;
33 // Object o2 = Outer.this;
34 Object o3 = this;
35 }
36 interface IInner {
37 // Object o1 = Top.this;
38 // Object o2 = Outer.this;
39 // Object o3 = this;
40 }
41 }
42
43
44 @TB Outer f1;
45 @TB Outer.Inner f1a; // err
46 @TB Outer.SInner f2a; // err
47 @TB Outer.IInner f3a; // err
48
49 Outer. @TC Inner f1b;
50 Outer. @TC SInner f2b;
51 Outer. @TC IInner f3b;
52
53 @TB Outer. @TC Inner f1c; // err
54 @TB Outer. @TC SInner f2c; // err
55 @TB Outer. @TC IInner f3c; // err
56
57 @TA Top. @TB Outer g1; // err
58 @TA Top. @TB Outer.Inner g1a; // err
59 @TA Top. @TB Outer.SInner g2a; // err
60 @TA Top. @TB Outer.IInner g3a; // err
61
62 @TA Top. Outer. @TC Inner g1b; // err
63 @TA Top. Outer. @TC SInner g2b; // err
64 @TA Top. Outer. @TC IInner g3b; // err
65
66 @TA Top. @TB Outer. @TC Inner g1c; // err
67 @TA Top. @TB Outer. @TC SInner g2c; // err
68 @TA Top. @TB Outer. @TC IInner g3c; // err
69
70 @TB Outer f1r() { return null; }
71
72 @TB Outer.Inner f1ra() { return null; } // err
73 @TB Outer.SInner f2ra() { return null; } // err
74 @TB Outer.IInner f3ra() { return null; } // err
75
76 Outer. @TC Inner f1rb() { return null; }
77 Outer. @TC SInner f2rb() { return null; }
78 Outer. @TC IInner f3rb() { return null; }
79
80 @TB Outer. @TC Inner f1rc() { return null; } // err
81 @TB Outer. @TC SInner f2rc() { return null; } // err
82 @TB Outer. @TC IInner f3rc() { return null; } // err
83
84 void f1param(@TB Outer p,
85 @TB Outer.Inner p1, // err
86 Outer. @TC Inner p2,
87 @TB Outer. @TC Inner p3) { } // err
88 void f2param(@TB Outer p,
89 @TB Outer.SInner p1, // err
90 Outer. @TC SInner p2,
91 @TB Outer. @TC SInner p3) { } // err
92 void f3param(@TB Outer p,
93 @TB Outer.IInner p1, // err
94 Outer. @TC IInner p2,
95 @TB Outer. @TC IInner p3) { } // err
96
97 void f1cast(Object o) {
98 Object l;
99 l = (@TB Outer) o;
100 l = (@TB Outer.Inner) o; // err
101 l = (Outer. @TC Inner) o;
102 l = (@TB Outer. @TC Inner) o; // err
103 }
104 void f2cast(Object o) {
105 Object l;
106 l = (@TB Outer) o;
107 l = (@TB Outer.SInner) o; // err
108 l = (Outer. @TC SInner) o;
109 l = (@TB Outer. @TC SInner) o; // err
110 }
111 void f3cast(Object o) {
112 Object l;
113 l = (@TB Outer) o;
114 l = (@TB Outer.IInner) o; // err
115 l = (Outer. @TC IInner) o;
116 l = (@TB Outer. @TC IInner) o; // err
117 }
118
119 List<@TB Outer> h1;
120
121 List<@TB Outer.Inner> h1a; // err
122 List<@TB Outer.SInner> h2a; // err
123 List<@TB Outer.IInner> h3a; // err
124
125 List<Outer. @TC Inner> h1b;
126 List<Outer. @TC SInner> h2b;
127 List<Outer. @TC IInner> h3b;
128
129 List<@TB Outer. @TC Inner> h1c; // err
130 List<@TB Outer. @TC SInner> h2c; // err
131 List<@TB Outer. @TC IInner> h3c; // err
132
133 List<@TA Top. @TB Outer> k1; // err
134
135 List<@TA Top. @TB Outer.Inner> k1a; // err
136 List<@TA Top. @TB Outer.SInner> k2a; // err
137 List<@TA Top. @TB Outer.IInner> k3a; // err
138
139 List<@TA Top. Outer. @TC Inner> k1b; // err
140 List<@TA Top. Outer. @TC SInner> k2b; // err
141 List<@TA Top. Outer. @TC IInner> k3b; // err
142
143 List<@TA Top. @TB Outer. @TC Inner> k1c; // err
144 List<@TA Top. @TB Outer. @TC SInner> k2c; // err
145 List<@TA Top. @TB Outer. @TC IInner> k3c; // err
146
147
148 List<@TB Outer> g1r() { return null; }
149
150 List<@TB Outer.Inner> g1ra() { return null; } // err
151 List<@TB Outer.SInner> g2ra() { return null; } // err
152 List<@TB Outer.IInner> g3ra() { return null; } // err
153
154 List<Outer. @TC Inner> g1rb() { return null; }
155 List<Outer. @TC SInner> g2rb() { return null; }
156 List<Outer. @TC IInner> g3rb() { return null; }
157
158 List<@TB Outer. @TC Inner> g1rc() { return null; } // err
159 List<@TB Outer. @TC SInner> g2rc() { return null; } // err
160 List<@TB Outer. @TC IInner> g3rc() { return null; } // err
161
162 void g1param(List<@TB Outer> p,
163 List<@TB Outer.Inner> p1, // err
164 List<Outer. @TC Inner> p2,
165 List<@TB Outer. @TC Inner> p3) { } // err
166 void g2param(List<@TB Outer> p,
167 List<@TB Outer.SInner> p1, // err
168 List<Outer. @TC SInner> p2,
169 List<@TB Outer. @TC SInner> p3) { } // err
170 void g3param(List<@TB Outer> p,
171 List<@TB Outer.IInner> p1, // err
172 List<Outer. @TC IInner> p2,
173 List<@TB Outer. @TC IInner> p3) { } // err
174
175 void g1new(Object o) {
176 Object l;
177 l = new @TB ArrayList<@TB Outer>();
178 l = new @TB ArrayList<@TB Outer.Inner>(); // err
179 l = new @TB HashMap<String, Outer. @TC Inner>();
180 l = new @TB HashMap<String, @TB Outer. Inner>(); // err
181 l = new @TB HashMap<String, @TB Outer. @TC Inner>(); // err
182 }
183 void g2new(Object o) {
184 Object l;
185 l = new @TB ArrayList<@TB Outer>();
186 l = new @TB ArrayList<@TB Outer.SInner>(); // err
187 l = new @TB HashMap<String, Outer. @TC SInner>();
188 l = new @TB HashMap<String, @TB Outer. SInner>(); // err
189 l = new @TB HashMap<String, @TB Outer. @TC SInner>(); // err
190 }
191 void g3new(Object o) {
192 Object l;
193 l = new @TB ArrayList<@TB Outer>();
194 l = new @TB ArrayList<@TB Outer.IInner>(); // err
195 l = new @TB HashMap<String, Outer. @TC IInner>();
196 l = new @TB HashMap<String, @TB Outer. IInner>(); // err
197 l = new @TB HashMap<String, @TB Outer. @TC IInner>(); // err
198 }
199 void g4new(Object o) {
200 Object l;
201 l = new @TB ArrayList<@TA Top. @TB Outer>(); // err
202 l = new @TB ArrayList<@TA Top. @TB Outer.IInner>(); // err
203 l = new @TB HashMap<String, @TA Top. Outer. @TC IInner>(); // err
204 l = new @TB HashMap<String, @TA Top. @TB Outer. IInner>(); // err
205 l = new @TB HashMap<String, @TA Top. @TB Outer. @TC IInner>(); // err
206 }
207 }

mercurial