Lines 15-20
Link Here
|
15 |
import junit.framework.Test; |
15 |
import junit.framework.Test; |
16 |
import junit.framework.TestSuite; |
16 |
import junit.framework.TestSuite; |
17 |
|
17 |
|
|
|
18 |
import org.eclipse.jdt.core.ICompilationUnit; |
19 |
import org.eclipse.jdt.core.JavaModelException; |
18 |
import org.eclipse.jdt.core.dom.AST; |
20 |
import org.eclipse.jdt.core.dom.AST; |
19 |
|
21 |
|
20 |
public class ASTConverterBugsTestJLS3 extends ASTConverterBugsTest { |
22 |
public class ASTConverterBugsTestJLS3 extends ASTConverterBugsTest { |
Lines 33-36
Link Here
|
33 |
return suite; |
35 |
return suite; |
34 |
} |
36 |
} |
35 |
|
37 |
|
|
|
38 |
/** |
39 |
* @bug 130778: Invalid annotation elements cause no annotation to be in the AST |
40 |
* @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=130778" |
41 |
*/ |
42 |
public void testBug130778a() throws JavaModelException { |
43 |
this.workingCopies = new ICompilationUnit[2]; |
44 |
|
45 |
this.workingCopies[0] = getWorkingCopy( |
46 |
"/Converter15/src/a/AnAnnotation.java", |
47 |
"package a;\n" + |
48 |
"public @interface AnAnnotation {\n" + |
49 |
" String value();\n" + |
50 |
"}\n", |
51 |
true/*resolve*/); |
52 |
|
53 |
this.workingCopies[1] = getWorkingCopy( |
54 |
"/Converter15/src/a/AnAnnotation2.java", |
55 |
"package a;\n" + |
56 |
"public @interface AnAnnotation2 {\n" + |
57 |
" String value();\n" + |
58 |
"}\n", |
59 |
true/*resolve*/); |
60 |
|
61 |
ASTResult result = this.buildMarkedAST( |
62 |
"/Converter15/src/a/X.java", |
63 |
"package a;\n" + |
64 |
"[*1*]public[*1*]\n" + |
65 |
"[*2*]@AnAnnotation(\"a\")[*2*]\n" + |
66 |
"[*3*]final[*3*]\n" + |
67 |
"[*4*]@AnAnnotation2(\"b\")[*4*]\n" + |
68 |
"class X {\n" + |
69 |
"}\n"); |
70 |
|
71 |
assertASTResult( |
72 |
"===== AST =====\n" + |
73 |
"package a;\n" + |
74 |
"[*1*]public[*1*] [*2*]@AnAnnotation(\"a\")[*2*] [*3*]final[*3*] [*4*]@AnAnnotation2(\"b\")[*4*] class X {\n" + |
75 |
"}\n" + |
76 |
"\n" + |
77 |
"===== Details =====\n" + |
78 |
"1:MODIFIER,[11,6],,,[N/A]\n" + |
79 |
"2:SINGLE_MEMBER_ANNOTATION,[18,18],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
80 |
"3:MODIFIER,[37,5],,,[N/A]\n" + |
81 |
"4:SINGLE_MEMBER_ANNOTATION,[43,19],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
82 |
"===== Problems =====\n" + |
83 |
"No problem", |
84 |
result); |
85 |
} |
86 |
public void testBug130778b() throws JavaModelException { |
87 |
this.workingCopies = new ICompilationUnit[2]; |
88 |
|
89 |
this.workingCopies[0] = getWorkingCopy( |
90 |
"/Converter15/src/a/AnAnnotation.java", |
91 |
"package a;\n" + |
92 |
"public @interface AnAnnotation {\n" + |
93 |
" String value();\n" + |
94 |
"}\n", |
95 |
true/*resolve*/); |
96 |
|
97 |
this.workingCopies[1] = getWorkingCopy( |
98 |
"/Converter15/src/a/AnAnnotation2.java", |
99 |
"package a;\n" + |
100 |
"public @interface AnAnnotation2 {\n" + |
101 |
" String value();\n" + |
102 |
"}\n", |
103 |
true/*resolve*/); |
104 |
|
105 |
ASTResult result = this.buildMarkedAST( |
106 |
"/Converter15/src/a/X.java", |
107 |
"package a;\n" + |
108 |
"#\n" + |
109 |
"[*1*]public[*1*]\n" + |
110 |
"[*2*]@AnAnnotation(\"a\")[*2*]\n" + |
111 |
"[*3*]final[*3*]\n" + |
112 |
"[*4*]@AnAnnotation2(\"b\")[*4*]\n" + |
113 |
"class X {\n" + |
114 |
"}\n"); |
115 |
|
116 |
assertASTResult( |
117 |
"===== AST =====\n" + |
118 |
"package a;\n" + |
119 |
"[*1*]public[*1*] [*2*]@AnAnnotation(\"a\")[*2*] [*3*]final[*3*] [*4*]@AnAnnotation2(\"b\")[*4*] class X {\n" + |
120 |
"}\n" + |
121 |
"\n" + |
122 |
"===== Details =====\n" + |
123 |
"1:MODIFIER,[13,6],,,[N/A]\n" + |
124 |
"2:SINGLE_MEMBER_ANNOTATION,[20,18],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
125 |
"3:MODIFIER,[39,5],,,[N/A]\n" + |
126 |
"4:SINGLE_MEMBER_ANNOTATION,[45,19],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
127 |
"===== Problems =====\n" + |
128 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
129 |
" #\n" + |
130 |
" ^\n" + |
131 |
"Syntax error on token \"Invalid Character\", delete this token\n", |
132 |
result); |
133 |
} |
134 |
public void testBug130778c() throws JavaModelException { |
135 |
this.workingCopies = new ICompilationUnit[2]; |
136 |
|
137 |
this.workingCopies[0] = getWorkingCopy( |
138 |
"/Converter15/src/a/AnAnnotation.java", |
139 |
"package a;\n" + |
140 |
"public @interface AnAnnotation {\n" + |
141 |
" String value();\n" + |
142 |
"}\n", |
143 |
true/*resolve*/); |
144 |
|
145 |
this.workingCopies[1] = getWorkingCopy( |
146 |
"/Converter15/src/a/AnAnnotation2.java", |
147 |
"package a;\n" + |
148 |
"public @interface AnAnnotation2 {\n" + |
149 |
" String value();\n" + |
150 |
"}\n", |
151 |
true/*resolve*/); |
152 |
|
153 |
ASTResult result = this.buildMarkedAST( |
154 |
"/Converter15/src/a/X.java", |
155 |
"package a;\n" + |
156 |
"[*1*]public[*1*]\n" + |
157 |
"#\n" + |
158 |
"[*2*]@AnAnnotation(\"a\")[*2*]\n" + |
159 |
"[*3*]final[*3*]\n" + |
160 |
"[*4*]@AnAnnotation2(\"b\")[*4*]\n" + |
161 |
"class X {\n" + |
162 |
"}\n"); |
163 |
|
164 |
assertASTResult( |
165 |
"===== AST =====\n" + |
166 |
"package a;\n" + |
167 |
"[*1*]public[*1*] [*2*]@AnAnnotation(\"a\")[*2*] [*3*]final[*3*] [*4*]@AnAnnotation2(\"b\")[*4*] class X {\n" + |
168 |
"}\n" + |
169 |
"\n" + |
170 |
"===== Details =====\n" + |
171 |
"1:MODIFIER,[11,6],,,[N/A]\n" + |
172 |
"2:SINGLE_MEMBER_ANNOTATION,[20,18],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
173 |
"3:MODIFIER,[39,5],,,[N/A]\n" + |
174 |
"4:SINGLE_MEMBER_ANNOTATION,[45,19],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
175 |
"===== Problems =====\n" + |
176 |
"1. ERROR in /Converter15/src/a/X.java (at line 3)\n" + |
177 |
" #\n" + |
178 |
" ^\n" + |
179 |
"Syntax error on token \"Invalid Character\", delete this token\n", |
180 |
result); |
181 |
} |
182 |
public void testBug130778d() throws JavaModelException { |
183 |
this.workingCopies = new ICompilationUnit[2]; |
184 |
|
185 |
this.workingCopies[0] = getWorkingCopy( |
186 |
"/Converter15/src/a/AnAnnotation.java", |
187 |
"package a;\n" + |
188 |
"public @interface AnAnnotation {\n" + |
189 |
" String value();\n" + |
190 |
"}\n", |
191 |
true/*resolve*/); |
192 |
|
193 |
this.workingCopies[1] = getWorkingCopy( |
194 |
"/Converter15/src/a/AnAnnotation2.java", |
195 |
"package a;\n" + |
196 |
"public @interface AnAnnotation2 {\n" + |
197 |
" String value();\n" + |
198 |
"}\n", |
199 |
true/*resolve*/); |
200 |
|
201 |
ASTResult result = this.buildMarkedAST( |
202 |
"/Converter15/src/a/X.java", |
203 |
"package a;\n" + |
204 |
"[*1*]public[*1*]\n" + |
205 |
"[*2*]@AnAnnotation(\"a\")[*2*]\n" + |
206 |
"#\n" + |
207 |
"[*3*]final[*3*]\n" + |
208 |
"[*4*]@AnAnnotation2(\"b\")[*4*]\n" + |
209 |
"class X {\n" + |
210 |
"}\n"); |
211 |
|
212 |
assertASTResult( |
213 |
"===== AST =====\n" + |
214 |
"package a;\n" + |
215 |
"[*1*]public[*1*] [*2*]@AnAnnotation(\"a\")[*2*] [*3*]final[*3*] [*4*]@AnAnnotation2(\"b\")[*4*] class X {\n" + |
216 |
"}\n" + |
217 |
"\n" + |
218 |
"===== Details =====\n" + |
219 |
"1:MODIFIER,[11,6],,,[N/A]\n" + |
220 |
"2:SINGLE_MEMBER_ANNOTATION,[18,18],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
221 |
"3:MODIFIER,[39,5],,,[N/A]\n" + |
222 |
"4:SINGLE_MEMBER_ANNOTATION,[45,19],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
223 |
"===== Problems =====\n" + |
224 |
"1. ERROR in /Converter15/src/a/X.java (at line 4)\n" + |
225 |
" #\n" + |
226 |
" ^\n" + |
227 |
"Syntax error on token \"Invalid Character\", delete this token\n", |
228 |
result); |
229 |
} |
230 |
public void testBug130778e() throws JavaModelException { |
231 |
this.workingCopies = new ICompilationUnit[2]; |
232 |
|
233 |
this.workingCopies[0] = getWorkingCopy( |
234 |
"/Converter15/src/a/AnAnnotation.java", |
235 |
"package a;\n" + |
236 |
"public @interface AnAnnotation {\n" + |
237 |
" String value();\n" + |
238 |
"}\n", |
239 |
true/*resolve*/); |
240 |
|
241 |
this.workingCopies[1] = getWorkingCopy( |
242 |
"/Converter15/src/a/AnAnnotation2.java", |
243 |
"package a;\n" + |
244 |
"public @interface AnAnnotation2 {\n" + |
245 |
" String value();\n" + |
246 |
"}\n", |
247 |
true/*resolve*/); |
248 |
|
249 |
ASTResult result = this.buildMarkedAST( |
250 |
"/Converter15/src/a/X.java", |
251 |
"package a;\n" + |
252 |
"[*1*]public[*1*]\n" + |
253 |
"[*2*]@AnAnnotation(\"a\")[*2*]\n" + |
254 |
"[*3*]final[*3*]\n" + |
255 |
"#\n" + |
256 |
"[*4*]@AnAnnotation2(\"b\")[*4*]\n" + |
257 |
"class X {\n" + |
258 |
"}\n"); |
259 |
|
260 |
assertASTResult( |
261 |
"===== AST =====\n" + |
262 |
"package a;\n" + |
263 |
"[*1*]public[*1*] [*2*]@AnAnnotation(\"a\")[*2*] [*3*]final[*3*] [*4*]@AnAnnotation2(\"b\")[*4*] class X {\n" + |
264 |
"}\n" + |
265 |
"\n" + |
266 |
"===== Details =====\n" + |
267 |
"1:MODIFIER,[11,6],,,[N/A]\n" + |
268 |
"2:SINGLE_MEMBER_ANNOTATION,[18,18],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
269 |
"3:MODIFIER,[37,5],,,[N/A]\n" + |
270 |
"4:SINGLE_MEMBER_ANNOTATION,[45,19],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
271 |
"===== Problems =====\n" + |
272 |
"1. ERROR in /Converter15/src/a/X.java (at line 5)\n" + |
273 |
" #\n" + |
274 |
" ^\n" + |
275 |
"Syntax error on token \"Invalid Character\", delete this token\n", |
276 |
result); |
277 |
} |
278 |
public void testBug130778f() throws JavaModelException { |
279 |
this.workingCopies = new ICompilationUnit[2]; |
280 |
|
281 |
this.workingCopies[0] = getWorkingCopy( |
282 |
"/Converter15/src/a/AnAnnotation.java", |
283 |
"package a;\n" + |
284 |
"public @interface AnAnnotation {\n" + |
285 |
" String value();\n" + |
286 |
"}\n", |
287 |
true/*resolve*/); |
288 |
|
289 |
this.workingCopies[1] = getWorkingCopy( |
290 |
"/Converter15/src/a/AnAnnotation2.java", |
291 |
"package a;\n" + |
292 |
"public @interface AnAnnotation2 {\n" + |
293 |
" String value();\n" + |
294 |
"}\n", |
295 |
true/*resolve*/); |
296 |
|
297 |
ASTResult result = this.buildMarkedAST( |
298 |
"/Converter15/src/a/X.java", |
299 |
"package a;\n" + |
300 |
"[*1*]public[*1*]\n" + |
301 |
"[*2*]@AnAnnotation(\"a\")[*2*]\n" + |
302 |
"[*3*]final[*3*]\n" + |
303 |
"[*4*]@AnAnnotation2(\"b\")[*4*]\n" + |
304 |
"#\n" + |
305 |
"class X {\n" + |
306 |
"}\n"); |
307 |
|
308 |
assertASTResult( |
309 |
"===== AST =====\n" + |
310 |
"package a;\n" + |
311 |
"[*1*]public[*1*] [*2*]@AnAnnotation(\"a\")[*2*] [*3*]final[*3*] [*4*]@AnAnnotation2(\"b\")[*4*] class X {\n" + |
312 |
"}\n" + |
313 |
"\n" + |
314 |
"===== Details =====\n" + |
315 |
"1:MODIFIER,[11,6],,,[N/A]\n" + |
316 |
"2:SINGLE_MEMBER_ANNOTATION,[18,18],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
317 |
"3:MODIFIER,[37,5],,,[N/A]\n" + |
318 |
"4:SINGLE_MEMBER_ANNOTATION,[43,19],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
319 |
"===== Problems =====\n" + |
320 |
"1. ERROR in /Converter15/src/a/X.java (at line 6)\n" + |
321 |
" #\n" + |
322 |
" ^\n" + |
323 |
"Syntax error on token \"Invalid Character\", delete this token\n", |
324 |
result); |
325 |
} |
326 |
public void testBug130778g() throws JavaModelException { |
327 |
this.workingCopies = new ICompilationUnit[2]; |
328 |
|
329 |
this.workingCopies[0] = getWorkingCopy( |
330 |
"/Converter15/src/a/AnAnnotation.java", |
331 |
"package a;\n" + |
332 |
"public @interface AnAnnotation {\n" + |
333 |
" String value();\n" + |
334 |
"}\n", |
335 |
true/*resolve*/); |
336 |
|
337 |
this.workingCopies[1] = getWorkingCopy( |
338 |
"/Converter15/src/a/AnAnnotation2.java", |
339 |
"package a;\n" + |
340 |
"public @interface AnAnnotation2 {\n" + |
341 |
" String value();\n" + |
342 |
"}\n", |
343 |
true/*resolve*/); |
344 |
|
345 |
ASTResult result = this.buildMarkedAST( |
346 |
"/Converter15/src/a/X.java", |
347 |
"package a;\n" + |
348 |
"[*1*]public[*1*]\n" + |
349 |
"[*2*]@AnAnnotation(\"a\")[*2*]\n" + |
350 |
"[*3*]final[*3*]\n" + |
351 |
"[*4*]@AnAnnotation2(\"b\")[*4*]\n" + |
352 |
"class X {\n" + |
353 |
" #\n" + |
354 |
"}\n"); |
355 |
|
356 |
assertASTResult( |
357 |
"===== AST =====\n" + |
358 |
"package a;\n" + |
359 |
"[*1*]public[*1*] [*2*]@AnAnnotation(\"a\")[*2*] [*3*]final[*3*] [*4*]@AnAnnotation2(\"b\")[*4*] class X {\n" + |
360 |
"}\n" + |
361 |
"\n" + |
362 |
"===== Details =====\n" + |
363 |
"1:MODIFIER,[11,6],,,[N/A]\n" + |
364 |
"2:SINGLE_MEMBER_ANNOTATION,[18,18],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
365 |
"3:MODIFIER,[37,5],,,[N/A]\n" + |
366 |
"4:SINGLE_MEMBER_ANNOTATION,[43,19],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
367 |
"===== Problems =====\n" + |
368 |
"1. ERROR in /Converter15/src/a/X.java (at line 7)\n" + |
369 |
" #\n" + |
370 |
" ^\n" + |
371 |
"Syntax error on token \"Invalid Character\", delete this token\n", |
372 |
result); |
373 |
} |
374 |
public void testBug130778h() throws JavaModelException { |
375 |
this.workingCopies = new ICompilationUnit[2]; |
376 |
|
377 |
this.workingCopies[0] = getWorkingCopy( |
378 |
"/Converter15/src/a/AnAnnotation.java", |
379 |
"package a;\n" + |
380 |
"public @interface AnAnnotation {\n" + |
381 |
" String value();\n" + |
382 |
"}\n", |
383 |
true/*resolve*/); |
384 |
|
385 |
this.workingCopies[1] = getWorkingCopy( |
386 |
"/Converter15/src/a/AnAnnotation2.java", |
387 |
"package a;\n" + |
388 |
"public @interface AnAnnotation2 {\n" + |
389 |
" String value();\n" + |
390 |
"}\n", |
391 |
true/*resolve*/); |
392 |
|
393 |
ASTResult result = this.buildMarkedAST( |
394 |
"/Converter15/src/a/X.java", |
395 |
"package a;\n" + |
396 |
"[*1*]@AnAnnotation(value=\"a\")[*1*]\n" + |
397 |
"[*2*]@AnAnnotation2(value=\"b\")[*2*]\n" + |
398 |
"[*3*]public[*3*] class X {\n" + |
399 |
"}\n"); |
400 |
|
401 |
assertASTResult( |
402 |
"===== AST =====\n" + |
403 |
"package a;\n" + |
404 |
"[*1*]@AnAnnotation(value=\"a\")[*1*] [*2*]@AnAnnotation2(value=\"b\")[*2*] [*3*]public[*3*] class X {\n" + |
405 |
"}\n" + |
406 |
"\n" + |
407 |
"===== Details =====\n" + |
408 |
"1:NORMAL_ANNOTATION,[11,24],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
409 |
"2:NORMAL_ANNOTATION,[36,25],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
410 |
"3:MODIFIER,[62,6],,,[N/A]\n" + |
411 |
"===== Problems =====\n" + |
412 |
"No problem", |
413 |
result); |
414 |
} |
415 |
public void testBug130778i() throws JavaModelException { |
416 |
this.workingCopies = new ICompilationUnit[2]; |
417 |
|
418 |
this.workingCopies[0] = getWorkingCopy( |
419 |
"/Converter15/src/a/AnAnnotation.java", |
420 |
"package a;\n" + |
421 |
"public @interface AnAnnotation {\n" + |
422 |
" String value();\n" + |
423 |
"}\n", |
424 |
true/*resolve*/); |
425 |
|
426 |
this.workingCopies[1] = getWorkingCopy( |
427 |
"/Converter15/src/a/AnAnnotation2.java", |
428 |
"package a;\n" + |
429 |
"public @interface AnAnnotation2 {\n" + |
430 |
" String value();\n" + |
431 |
"}\n", |
432 |
true/*resolve*/); |
433 |
|
434 |
ASTResult result = this.buildMarkedAST( |
435 |
"/Converter15/src/a/X.java", |
436 |
"package a;\n" + |
437 |
"[*1*]@AnAnnotation[*1*](value=)\n" + |
438 |
"[*2*]@AnAnnotation2(value=\"b\")[*2*]\n" + |
439 |
"[*3*]public[*3*] class X {\n" + |
440 |
"}\n"); |
441 |
|
442 |
assertASTResult( |
443 |
"===== AST =====\n" + |
444 |
"package a;\n" + |
445 |
"[*1*]@AnAnnotation[*1*] [*2*]@AnAnnotation2(value=\"b\")[*2*] [*3*]public[*3*] class X {\n" + |
446 |
"}\n" + |
447 |
"\n" + |
448 |
"===== Details =====\n" + |
449 |
"1:MARKER_ANNOTATION,[11,13],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
450 |
"2:NORMAL_ANNOTATION,[33,25],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
451 |
"3:MODIFIER,[59,6],,,[N/A]\n" + |
452 |
"===== Problems =====\n" + |
453 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
454 |
" @AnAnnotation(value=)\n" + |
455 |
" ^\n" + |
456 |
"Syntax error on token \"=\", MemberValue expected after this token\n", |
457 |
result); |
458 |
} |
459 |
public void testBug130778j() throws JavaModelException { |
460 |
this.workingCopies = new ICompilationUnit[2]; |
461 |
|
462 |
this.workingCopies[0] = getWorkingCopy( |
463 |
"/Converter15/src/a/AnAnnotation.java", |
464 |
"package a;\n" + |
465 |
"public @interface AnAnnotation {\n" + |
466 |
" String value();\n" + |
467 |
"}\n", |
468 |
true/*resolve*/); |
469 |
|
470 |
this.workingCopies[1] = getWorkingCopy( |
471 |
"/Converter15/src/a/AnAnnotation2.java", |
472 |
"package a;\n" + |
473 |
"public @interface AnAnnotation2 {\n" + |
474 |
" String value();\n" + |
475 |
"}\n", |
476 |
true/*resolve*/); |
477 |
|
478 |
ASTResult result = this.buildMarkedAST( |
479 |
"/Converter15/src/a/X.java", |
480 |
"package a;\n" + |
481 |
"[*1*]@AnAnnotation(value=\"a\")[*1*]\n" + |
482 |
"[*2*]@AnAnnotation2[*2*](value=)\n" + |
483 |
"[*3*]public[*3*] class X {\n" + |
484 |
"}\n"); |
485 |
|
486 |
assertASTResult( |
487 |
"===== AST =====\n" + |
488 |
"package a;\n" + |
489 |
"[*1*]@AnAnnotation(value=\"a\")[*1*] [*2*]@AnAnnotation2[*2*] [*3*]public[*3*] class X {\n" + |
490 |
"}\n" + |
491 |
"\n" + |
492 |
"===== Details =====\n" + |
493 |
"1:NORMAL_ANNOTATION,[11,24],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
494 |
"2:MARKER_ANNOTATION,[36,14],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
495 |
"3:MODIFIER,[59,6],,,[N/A]\n" + |
496 |
"===== Problems =====\n" + |
497 |
"1. ERROR in /Converter15/src/a/X.java (at line 3)\n" + |
498 |
" @AnAnnotation2(value=)\n" + |
499 |
" ^\n" + |
500 |
"Syntax error on token \"=\", MemberValue expected after this token\n", |
501 |
result); |
502 |
} |
503 |
public void testBug130778k() throws JavaModelException { |
504 |
this.workingCopies = new ICompilationUnit[2]; |
505 |
|
506 |
this.workingCopies[0] = getWorkingCopy( |
507 |
"/Converter15/src/a/AnAnnotation.java", |
508 |
"package a;\n" + |
509 |
"public @interface AnAnnotation {\n" + |
510 |
" String value();\n" + |
511 |
"}\n", |
512 |
true/*resolve*/); |
513 |
|
514 |
this.workingCopies[1] = getWorkingCopy( |
515 |
"/Converter15/src/a/AnAnnotation2.java", |
516 |
"package a;\n" + |
517 |
"public @interface AnAnnotation2 {\n" + |
518 |
" String value();\n" + |
519 |
"}\n", |
520 |
true/*resolve*/); |
521 |
|
522 |
ASTResult result = this.buildMarkedAST( |
523 |
"/Converter15/src/a/X.java", |
524 |
"package a;\n" + |
525 |
"[*1*]@AnAnnotation[*1*](value=)\n" + |
526 |
"[*2*]@AnAnnotation2[*2*](value=)\n" + |
527 |
"[*3*]public[*3*] class X {\n" + |
528 |
"}\n"); |
529 |
|
530 |
assertASTResult( |
531 |
"===== AST =====\n" + |
532 |
"package a;\n" + |
533 |
"[*1*]@AnAnnotation[*1*] [*2*]@AnAnnotation2[*2*] [*3*]public[*3*] class X {\n" + |
534 |
"}\n" + |
535 |
"\n" + |
536 |
"===== Details =====\n" + |
537 |
"1:MARKER_ANNOTATION,[11,13],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
538 |
"2:MARKER_ANNOTATION,[33,14],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
539 |
"3:MODIFIER,[56,6],,,[N/A]\n" + |
540 |
"===== Problems =====\n" + |
541 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
542 |
" @AnAnnotation(value=)\n" + |
543 |
" ^\n" + |
544 |
"Syntax error on token \")\", delete this token\n" + |
545 |
"2. ERROR in /Converter15/src/a/X.java (at line 3)\n" + |
546 |
" @AnAnnotation2(value=)\n" + |
547 |
" ^\n" + |
548 |
"Syntax error on token \"=\", ) expected\n", |
549 |
result); |
550 |
} |
551 |
public void testBug130778l() throws JavaModelException { |
552 |
this.workingCopies = new ICompilationUnit[2]; |
553 |
|
554 |
this.workingCopies[0] = getWorkingCopy( |
555 |
"/Converter15/src/a/AnAnnotation.java", |
556 |
"package a;\n" + |
557 |
"public @interface AnAnnotation {\n" + |
558 |
" String value();\n" + |
559 |
"}\n", |
560 |
true/*resolve*/); |
561 |
|
562 |
this.workingCopies[1] = getWorkingCopy( |
563 |
"/Converter15/src/a/AnAnnotation2.java", |
564 |
"package a;\n" + |
565 |
"public @interface AnAnnotation2 {\n" + |
566 |
" String value();\n" + |
567 |
"}\n", |
568 |
true/*resolve*/); |
569 |
|
570 |
ASTResult result = this.buildMarkedAST( |
571 |
"/Converter15/src/a/X.java", |
572 |
"package a;\n" + |
573 |
"public class X {\n" + |
574 |
" public void foo(){\n" + |
575 |
" [*1*]@AnAnnotation[*1*](value=)\n" + |
576 |
" [*2*]@AnAnnotation2(value=\"b\")[*2*]\n" + |
577 |
" class Y {}\n" + |
578 |
" }\n" + |
579 |
"}\n"); |
580 |
|
581 |
assertASTResult( |
582 |
"===== AST =====\n" + |
583 |
"package a;\n" + |
584 |
"public class X {\n" + |
585 |
" public void foo(){\n" + |
586 |
"[*1*]@AnAnnotation[*1*] [*2*]@AnAnnotation2(value=\"b\")[*2*] class Y {\n" + |
587 |
" }\n" + |
588 |
" }\n" + |
589 |
"}\n" + |
590 |
"\n" + |
591 |
"===== Details =====\n" + |
592 |
"1:MARKER_ANNOTATION,[53,13],,,[ANNOTATION,La/X$115$Y;@La/AnAnnotation;,]\n" + |
593 |
"2:NORMAL_ANNOTATION,[79,25],,,[ANNOTATION,La/X$115$Y;@La/AnAnnotation2;,]\n" + |
594 |
"===== Problems =====\n" + |
595 |
"1. ERROR in /Converter15/src/a/X.java (at line 4)\n" + |
596 |
" @AnAnnotation(value=)\n" + |
597 |
" ^\n" + |
598 |
"Syntax error on token \"=\", MemberValue expected after this token\n", |
599 |
result); |
600 |
} |
601 |
public void testBug130778m() throws JavaModelException { |
602 |
this.workingCopies = new ICompilationUnit[2]; |
603 |
|
604 |
this.workingCopies[0] = getWorkingCopy( |
605 |
"/Converter15/src/a/AnAnnotation.java", |
606 |
"package a;\n" + |
607 |
"public @interface AnAnnotation {\n" + |
608 |
" String value();\n" + |
609 |
"}\n", |
610 |
true/*resolve*/); |
611 |
|
612 |
this.workingCopies[1] = getWorkingCopy( |
613 |
"/Converter15/src/a/AnAnnotation2.java", |
614 |
"package a;\n" + |
615 |
"public @interface AnAnnotation2 {\n" + |
616 |
" String value();\n" + |
617 |
"}\n", |
618 |
true/*resolve*/); |
619 |
|
620 |
ASTResult result = this.buildMarkedAST( |
621 |
"/Converter15/src/a/X.java", |
622 |
"package a;\n" + |
623 |
"public class X {\n" + |
624 |
" public void foo(){\n" + |
625 |
" [*1*]@AnAnnotation(value=)[*1*]\n" + |
626 |
" [*2*]@AnAnnotation2(value=\"b\")[*2*]\n" + |
627 |
" int i;\n" + |
628 |
" }\n" + |
629 |
"}\n"); |
630 |
|
631 |
assertASTResult( |
632 |
"===== AST =====\n" + |
633 |
"package a;\n" + |
634 |
"public class X {\n" + |
635 |
" public void foo(){\n" + |
636 |
" [*1*]@AnAnnotation(value=$missing$)[*1*] [*2*]@AnAnnotation2(value=\"b\")[*2*] int i;\n" + |
637 |
" }\n" + |
638 |
"}\n" + |
639 |
"\n" + |
640 |
"===== Details =====\n" + |
641 |
"1:NORMAL_ANNOTATION,[53,21],,,[ANNOTATION,La/X;.foo()V#i@La/AnAnnotation;,]\n" + |
642 |
"2:NORMAL_ANNOTATION,[79,25],,,[ANNOTATION,La/X;.foo()V#i@La/AnAnnotation2;,]\n" + |
643 |
"===== Problems =====\n" + |
644 |
"1. ERROR in /Converter15/src/a/X.java (at line 4)\n" + |
645 |
" @AnAnnotation(value=)\n" + |
646 |
" ^\n" + |
647 |
"Syntax error on token \"=\", MemberValue expected after this token\n", |
648 |
result); |
649 |
} |
650 |
public void testBug130778n() throws JavaModelException { |
651 |
this.workingCopies = new ICompilationUnit[1]; |
652 |
|
653 |
this.workingCopies[0] = getWorkingCopy( |
654 |
"/Converter15/src/a/AnAnnotation.java", |
655 |
"package a;\n" + |
656 |
"public @interface AnAnnotation {\n" + |
657 |
" String name1();\n" + |
658 |
" String name2();\n" + |
659 |
"}\n", |
660 |
true/*resolve*/); |
661 |
|
662 |
ASTResult result = this.buildMarkedAST( |
663 |
"/Converter15/src/a/X.java", |
664 |
"package a;\n" + |
665 |
"[*1*][*2*]@AnAnnotation([*3*]name1=\"a\"[*3*][*2*], name2)\n" + |
666 |
"public class X {\n" + |
667 |
"}[*1*]\n"); |
668 |
|
669 |
assertASTResult( |
670 |
"===== AST =====\n" + |
671 |
"package a;\n" + |
672 |
"[*1*][*2*]@AnAnnotation([*3*]name1=\"a\"[*3*])[*2*] public class X {\n" + |
673 |
"}[*1*]\n" + |
674 |
"\n" + |
675 |
"===== Details =====\n" + |
676 |
"1:TYPE_DECLARATION,[11,50],,MALFORMED|RECOVERED,[TYPE,La/X;,]\n" + |
677 |
"2:NORMAL_ANNOTATION,[11,23],,RECOVERED,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
678 |
"3:MEMBER_VALUE_PAIR,[25,9],,,[N/A]\n" + |
679 |
"===== Problems =====\n" + |
680 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
681 |
" @AnAnnotation(name1=\"a\", name2)\n" + |
682 |
" ^\n" + |
683 |
"Syntax error on token \",\", . expected\n", |
684 |
result); |
685 |
} |
686 |
public void testBug130778o() throws JavaModelException { |
687 |
this.workingCopies = new ICompilationUnit[1]; |
688 |
|
689 |
this.workingCopies[0] = getWorkingCopy( |
690 |
"/Converter15/src/a/AnAnnotation.java", |
691 |
"package a;\n" + |
692 |
"public @interface AnAnnotation {\n" + |
693 |
" String name1();\n" + |
694 |
" String name2();\n" + |
695 |
"}\n", |
696 |
true/*resolve*/); |
697 |
|
698 |
ASTResult result = this.buildMarkedAST( |
699 |
"/Converter15/src/a/X.java", |
700 |
"package a;\n" + |
701 |
"[*1*][*2*]@AnAnnotation[*2*]([*3*]name1=[*3*])\n" + |
702 |
"public class X {\n" + |
703 |
"}[*1*]\n"); |
704 |
|
705 |
assertASTResult( |
706 |
"===== AST =====\n" + |
707 |
"package a;\n" + |
708 |
"[*1*][*2*]@AnAnnotation[*2*] public class X {\n" + |
709 |
"}[*1*]\n" + |
710 |
"\n" + |
711 |
"===== Details =====\n" + |
712 |
"1:TYPE_DECLARATION,[11,40],,MALFORMED|RECOVERED,[TYPE,La/X;,]\n" + |
713 |
"2:MARKER_ANNOTATION,[11,13],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
714 |
"3:No corresponding node\n" + |
715 |
"===== Problems =====\n" + |
716 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
717 |
" @AnAnnotation(name1=)\n" + |
718 |
" ^\n" + |
719 |
"Syntax error on token \"=\", MemberValue expected after this token\n", |
720 |
result); |
721 |
} |
722 |
public void testBug130778p() throws JavaModelException { |
723 |
this.workingCopies = new ICompilationUnit[2]; |
724 |
|
725 |
this.workingCopies[0] = getWorkingCopy( |
726 |
"/Converter15/src/a/AnAnnotation.java", |
727 |
"package a;\n" + |
728 |
"public @interface AnAnnotation {\n" + |
729 |
" AnAnnotation2 value();\n" + |
730 |
"}\n", |
731 |
true/*resolve*/); |
732 |
|
733 |
this.workingCopies[1] = getWorkingCopy( |
734 |
"/Converter15/src/a/AnAnnotation2.java", |
735 |
"package a;\n" + |
736 |
"public @interface AnAnnotation2 {\n" + |
737 |
" String value();\n" + |
738 |
"}\n", |
739 |
true/*resolve*/); |
740 |
|
741 |
ASTResult result = this.buildMarkedAST( |
742 |
"/Converter15/src/a/X.java", |
743 |
"package a;\n" + |
744 |
"[*1*]@AnAnnotation([*2*]value=[*3*]@AnAnnotation2(value=\"a\")[*3*][*2*])[*1*]\n" + |
745 |
"public class X {\n" + |
746 |
"}\n"); |
747 |
|
748 |
assertASTResult( |
749 |
"===== AST =====\n" + |
750 |
"package a;\n" + |
751 |
"[*1*]@AnAnnotation([*2*]value=[*3*]@AnAnnotation2(value=\"a\")[*3*][*2*])[*1*] public class X {\n" + |
752 |
"}\n" + |
753 |
"\n" + |
754 |
"===== Details =====\n" + |
755 |
"1:NORMAL_ANNOTATION,[11,46],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
756 |
"2:MEMBER_VALUE_PAIR,[25,31],,,[N/A]\n" + |
757 |
"3:NORMAL_ANNOTATION,[31,25],,,[ANNOTATION,@La/AnAnnotation2;,]\n" + |
758 |
"===== Problems =====\n" + |
759 |
"No problem", |
760 |
result); |
761 |
} |
762 |
public void testBug130778q() throws JavaModelException { |
763 |
this.workingCopies = new ICompilationUnit[2]; |
764 |
|
765 |
this.workingCopies[0] = getWorkingCopy( |
766 |
"/Converter15/src/a/AnAnnotation.java", |
767 |
"package a;\n" + |
768 |
"public @interface AnAnnotation {\n" + |
769 |
" AnAnnotation2 value();\n" + |
770 |
"}\n", |
771 |
true/*resolve*/); |
772 |
|
773 |
this.workingCopies[1] = getWorkingCopy( |
774 |
"/Converter15/src/a/AnAnnotation2.java", |
775 |
"package a;\n" + |
776 |
"public @interface AnAnnotation2 {\n" + |
777 |
" String value();\n" + |
778 |
"}\n", |
779 |
true/*resolve*/); |
780 |
|
781 |
ASTResult result = this.buildMarkedAST( |
782 |
"/Converter15/src/a/X.java", |
783 |
"package a;\n" + |
784 |
"[*1*]@AnAnnotation([*2*]value=[*3*]@AnAnnotation2(value=\"a\")[*3*][*2*][*1*]\n" + |
785 |
"public class X {\n" + |
786 |
"}\n"); |
787 |
|
788 |
assertASTResult( |
789 |
"===== AST =====\n" + |
790 |
"package a;\n" + |
791 |
"[*1*]@AnAnnotation([*2*]value=[*3*]@AnAnnotation2(value=\"a\")[*3*][*2*])[*1*] public class X {\n" + |
792 |
"}\n" + |
793 |
"\n" + |
794 |
"===== Details =====\n" + |
795 |
"1:NORMAL_ANNOTATION,[11,45],,RECOVERED,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
796 |
"2:MEMBER_VALUE_PAIR,[25,31],,,[N/A]\n" + |
797 |
"3:NORMAL_ANNOTATION,[31,25],,RECOVERED,[ANNOTATION,@La/AnAnnotation2;,]\n" + |
798 |
"===== Problems =====\n" + |
799 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
800 |
" @AnAnnotation(value=@AnAnnotation2(value=\"a\")\n" + |
801 |
" ^\n" + |
802 |
"Syntax error, insert \")\" to complete Modifiers\n", |
803 |
result); |
804 |
} |
805 |
public void testBug130778r() throws JavaModelException { |
806 |
this.workingCopies = new ICompilationUnit[2]; |
807 |
|
808 |
this.workingCopies[0] = getWorkingCopy( |
809 |
"/Converter15/src/a/AnAnnotation.java", |
810 |
"package a;\n" + |
811 |
"public @interface AnAnnotation {\n" + |
812 |
" AnAnnotation2 value();\n" + |
813 |
"}\n", |
814 |
true/*resolve*/); |
815 |
|
816 |
this.workingCopies[1] = getWorkingCopy( |
817 |
"/Converter15/src/a/AnAnnotation2.java", |
818 |
"package a;\n" + |
819 |
"public @interface AnAnnotation2 {\n" + |
820 |
" String value();\n" + |
821 |
"}\n", |
822 |
true/*resolve*/); |
823 |
|
824 |
ASTResult result = this.buildMarkedAST( |
825 |
"/Converter15/src/a/X.java", |
826 |
"package a;\n" + |
827 |
"[*1*][*2*]@AnAnnotation[*2*](value=@AnAnnotation2(value=))\n" + |
828 |
"public class X {\n" + |
829 |
"}[*1*]\n"); |
830 |
|
831 |
assertASTResult( |
832 |
"===== AST =====\n" + |
833 |
"package a;\n" + |
834 |
"[*1*][*2*]@AnAnnotation[*2*] public class X {\n" + |
835 |
"}[*1*]\n" + |
836 |
"\n" + |
837 |
"===== Details =====\n" + |
838 |
"1:TYPE_DECLARATION,[11,62],,MALFORMED|RECOVERED,[TYPE,La/X;,]\n" + |
839 |
"2:MARKER_ANNOTATION,[11,13],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
840 |
"===== Problems =====\n" + |
841 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
842 |
" @AnAnnotation(value=@AnAnnotation2(value=))\n" + |
843 |
" ^\n" + |
844 |
"Syntax error on token \"=\", MemberValue expected after this token\n", |
845 |
result); |
846 |
} |
847 |
public void testBug130778s() throws JavaModelException { |
848 |
this.workingCopies = new ICompilationUnit[2]; |
849 |
|
850 |
this.workingCopies[0] = getWorkingCopy( |
851 |
"/Converter15/src/a/AnAnnotation.java", |
852 |
"package a;\n" + |
853 |
"public @interface AnAnnotation {\n" + |
854 |
" String value1();\n" + |
855 |
" AnAnnotation2 value2();\n" + |
856 |
"}\n", |
857 |
true/*resolve*/); |
858 |
|
859 |
this.workingCopies[1] = getWorkingCopy( |
860 |
"/Converter15/src/a/AnAnnotation2.java", |
861 |
"package a;\n" + |
862 |
"public @interface AnAnnotation2 {\n" + |
863 |
" String value();\n" + |
864 |
"}\n", |
865 |
true/*resolve*/); |
866 |
|
867 |
ASTResult result = this.buildMarkedAST( |
868 |
"/Converter15/src/a/X.java", |
869 |
"package a;\n" + |
870 |
"[*1*][*2*]@AnAnnotation[*2*](value1=,[*3*]value=[*4*]@AnAnnotation2(value=\"b\")[*4*][*3*])\n" + |
871 |
"public class X {\n" + |
872 |
"}[*1*]\n"); |
873 |
|
874 |
assertASTResult( |
875 |
"===== AST =====\n" + |
876 |
"package a;\n" + |
877 |
"[*1*][*2*]@AnAnnotation[*2*] [*4*]@AnAnnotation2(value=\"b\")[*4*] public class X {\n" + |
878 |
"}[*1*]\n" + |
879 |
"\n" + |
880 |
"===== Details =====\n" + |
881 |
"1:TYPE_DECLARATION,[11,73],,MALFORMED|RECOVERED,[TYPE,La/X;,]\n" + |
882 |
"2:MARKER_ANNOTATION,[11,13],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
883 |
"4:NORMAL_ANNOTATION,[39,25],,,[ANNOTATION,La/X;@La/AnAnnotation2;,]\n" + |
884 |
"3:No corresponding node\n" + |
885 |
"===== Problems =====\n" + |
886 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
887 |
" @AnAnnotation(value1=,value=@AnAnnotation2(value=\"b\"))\n" + |
888 |
" ^\n" + |
889 |
"Syntax error on token \"=\", MemberValue expected after this token\n", |
890 |
result); |
891 |
} |
892 |
public void testBug130778t() throws JavaModelException { |
893 |
this.workingCopies = new ICompilationUnit[1]; |
894 |
|
895 |
this.workingCopies[0] = getWorkingCopy( |
896 |
"/Converter15/src/a/AnAnnotation.java", |
897 |
"package a;\n" + |
898 |
"public @interface AnAnnotation {\n" + |
899 |
" String value();\n" + |
900 |
"}\n", |
901 |
true/*resolve*/); |
902 |
|
903 |
ASTResult result = this.buildMarkedAST( |
904 |
"/Converter15/src/a/X.java", |
905 |
"package a;\n" + |
906 |
"[*1*]@AnAnnotation(\"b\")[*1*]\n" + |
907 |
"public class X {\n" + |
908 |
"}\n"); |
909 |
|
910 |
assertASTResult( |
911 |
"===== AST =====\n" + |
912 |
"package a;\n" + |
913 |
"[*1*]@AnAnnotation(\"b\")[*1*] public class X {\n" + |
914 |
"}\n" + |
915 |
"\n" + |
916 |
"===== Details =====\n" + |
917 |
"1:SINGLE_MEMBER_ANNOTATION,[11,18],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
918 |
"===== Problems =====\n" + |
919 |
"No problem", |
920 |
result); |
921 |
} |
922 |
public void testBug130778u() throws JavaModelException { |
923 |
this.workingCopies = new ICompilationUnit[1]; |
924 |
|
925 |
this.workingCopies[0] = getWorkingCopy( |
926 |
"/Converter15/src/a/AnAnnotation.java", |
927 |
"package a;\n" + |
928 |
"public @interface AnAnnotation {\n" + |
929 |
" String value();\n" + |
930 |
"}\n", |
931 |
true/*resolve*/); |
932 |
|
933 |
ASTResult result = this.buildMarkedAST( |
934 |
"/Converter15/src/a/X.java", |
935 |
"package a;\n" + |
936 |
"[*1*]@AnAnnotation([*2*]\"b\"[*2*][*1*]\n" + |
937 |
"public class X {\n" + |
938 |
"}\n"); |
939 |
|
940 |
assertASTResult( |
941 |
"===== AST =====\n" + |
942 |
"package a;\n" + |
943 |
"[*1*]@AnAnnotation([*2*]\"b\"[*2*])[*1*] public class X {\n" + |
944 |
"}\n" + |
945 |
"\n" + |
946 |
"===== Details =====\n" + |
947 |
"1:SINGLE_MEMBER_ANNOTATION,[11,17],,RECOVERED,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
948 |
"2:STRING_LITERAL,[25,3],,,[N/A]\n" + |
949 |
"===== Problems =====\n" + |
950 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
951 |
" @AnAnnotation(\"b\"\n" + |
952 |
" ^^^\n" + |
953 |
"Syntax error, insert \")\" to complete Modifiers\n", |
954 |
result); |
955 |
} |
956 |
public void testBug130778v() throws JavaModelException { |
957 |
this.workingCopies = new ICompilationUnit[2]; |
958 |
|
959 |
this.workingCopies[0] = getWorkingCopy( |
960 |
"/Converter15/src/a/AnAnnotation.java", |
961 |
"package a;\n" + |
962 |
"public @interface AnAnnotation {\n" + |
963 |
" AnAnnotation2 value();\n" + |
964 |
"}\n", |
965 |
true/*resolve*/); |
966 |
|
967 |
this.workingCopies[1] = getWorkingCopy( |
968 |
"/Converter15/src/a/AnAnnotation2.java", |
969 |
"package a;\n" + |
970 |
"public @interface AnAnnotation2 {\n" + |
971 |
" String value();\n" + |
972 |
"}\n", |
973 |
true/*resolve*/); |
974 |
|
975 |
ASTResult result = this.buildMarkedAST( |
976 |
"/Converter15/src/a/X.java", |
977 |
"package a;\n" + |
978 |
"[*1*]@AnAnnotation[*1*](@AnAnnotation2(\"b\"\n" + |
979 |
"public class X {\n" + |
980 |
"}\n"); |
981 |
|
982 |
assertASTResult( |
983 |
"===== AST =====\n" + |
984 |
"package a;\n" + |
985 |
"[*1*]@AnAnnotation[*1*] public class X {\n" + |
986 |
"}\n" + |
987 |
"\n" + |
988 |
"===== Details =====\n" + |
989 |
"1:MARKER_ANNOTATION,[11,13],,,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
990 |
"===== Problems =====\n" + |
991 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
992 |
" @AnAnnotation(@AnAnnotation2(\"b\"\n" + |
993 |
" ^^^\n" + |
994 |
"Syntax error, insert \")\" to complete SingleMemberAnnotation\n" + |
995 |
"2. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
996 |
" @AnAnnotation(@AnAnnotation2(\"b\"\n" + |
997 |
" ^^^\n" + |
998 |
"Syntax error, insert \")\" to complete Modifiers\n", |
999 |
result); |
1000 |
} |
1001 |
public void testBug130778x() throws JavaModelException { |
1002 |
this.workingCopies = new ICompilationUnit[1]; |
1003 |
|
1004 |
this.workingCopies[0] = getWorkingCopy( |
1005 |
"/Converter15/src/a/AnAnnotation.java", |
1006 |
"package a;\n" + |
1007 |
"public @interface AnAnnotation {\n" + |
1008 |
" String value();\n" + |
1009 |
"}\n", |
1010 |
true/*resolve*/); |
1011 |
|
1012 |
ASTResult result = this.buildMarkedAST( |
1013 |
"/Converter15/src/a/X.java", |
1014 |
"package a;\n" + |
1015 |
"[*1*]@AnAnnotation([*2*]\"a\"[*2*][*1*], [*3*]\"b\"[*3*])\n" + |
1016 |
"public class X {\n" + |
1017 |
"}\n"); |
1018 |
|
1019 |
assertASTResult( |
1020 |
"===== AST =====\n" + |
1021 |
"package a;\n" + |
1022 |
"[*1*]@AnAnnotation([*2*]\"a\"[*2*])[*1*] public class X {\n" + |
1023 |
"}\n" + |
1024 |
"\n" + |
1025 |
"===== Details =====\n" + |
1026 |
"1:SINGLE_MEMBER_ANNOTATION,[11,17],,RECOVERED,[ANNOTATION,La/X;@La/AnAnnotation;,]\n" + |
1027 |
"2:STRING_LITERAL,[25,3],,,[N/A]\n" + |
1028 |
"3:No corresponding node\n" + |
1029 |
"===== Problems =====\n" + |
1030 |
"1. ERROR in /Converter15/src/a/X.java (at line 2)\n" + |
1031 |
" @AnAnnotation(\"a\", \"b\")\n" + |
1032 |
" ^\n" + |
1033 |
"Syntax error on token \",\", < expected\n", |
1034 |
result); |
1035 |
} |
36 |
} |
1036 |
} |