1 /******************************************************************************* 2 * Copyright (c) 2011, 2017 IBM Corporation and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * IBM Corporation - initial API and implementation 13 * Stephan Herrmann - Contribution for 14 * bug 392099 - [1.8][compiler][null] Apply null annotation on types for null analysis 15 *******************************************************************************/ 16 package org.eclipse.jdt.core.tests.compiler.regression; 17 18 import junit.framework.Test; 19 20 @SuppressWarnings({ "rawtypes" }) 21 public class GrammarCoverageTests308 extends AbstractRegressionTest { 22 23 static { 24 // TESTS_NUMBERS = new int [] { 35 }; 25 // TESTS_NAMES = new String [] { "testnew" }; 26 } testClass()27 public static Class testClass() { 28 return GrammarCoverageTests308.class; 29 } suite()30 public static Test suite() { 31 return buildMinimalComplianceTestSuite(testClass(), F_1_8); 32 } GrammarCoverageTests308(String testName)33 public GrammarCoverageTests308(String testName){ 34 super(testName); 35 } 36 // Lone test to verify that multiple annotations of all three kinds are accepted. All other tests will use only marker annotations test000()37 public void test000() throws Exception { 38 this.runNegativeTest( 39 new String[] { 40 "X.java", 41 "public class X extends @Marker @SingleMember(0) @Normal(Value = 0) Object {\n" + 42 "}\n" 43 }, 44 "----------\n" + 45 "1. ERROR in X.java (at line 1)\n" + 46 " public class X extends @Marker @SingleMember(0) @Normal(Value = 0) Object {\n" + 47 " ^^^^^^\n" + 48 "Marker cannot be resolved to a type\n" + 49 "----------\n" + 50 "2. ERROR in X.java (at line 1)\n" + 51 " public class X extends @Marker @SingleMember(0) @Normal(Value = 0) Object {\n" + 52 " ^^^^^^^^^^^^\n" + 53 "SingleMember cannot be resolved to a type\n" + 54 "----------\n" + 55 "3. ERROR in X.java (at line 1)\n" + 56 " public class X extends @Marker @SingleMember(0) @Normal(Value = 0) Object {\n" + 57 " ^^^^^^\n" + 58 "Normal cannot be resolved to a type\n" + 59 "----------\n"); 60 } 61 // FieldDeclaration ::= Modifiersopt Type VariableDeclarators ';' test001()62 public void test001() throws Exception { 63 this.runNegativeTest( 64 new String[] { 65 "X.java", 66 "public class X {\n" + 67 " @Marker int x;\n" + 68 " Zork z;\n" + 69 "}\n" + 70 "@java.lang.annotation.Target (java.lang.annotation.ElementType.TYPE_PARAMETER)\n" + 71 "@interface Marker {}\n", 72 73 "java/lang/annotation/ElementType.java", 74 "package java.lang.annotation;\n"+ 75 "public enum ElementType {\n" + 76 " TYPE,\n" + 77 " FIELD,\n" + 78 " METHOD,\n" + 79 " PARAMETER,\n" + 80 " CONSTRUCTOR,\n" + 81 " LOCAL_VARIABLE,\n" + 82 " ANNOTATION_TYPE,\n" + 83 " PACKAGE,\n" + 84 " TYPE_PARAMETER,\n" + 85 " TYPE_USE\n" + 86 "}\n" 87 }, 88 "----------\n" + 89 "1. ERROR in X.java (at line 2)\n" + 90 " @Marker int x;\n" + 91 " ^^^^^^^\n" + 92 "The annotation @Marker is disallowed for this location\n" + 93 "----------\n" + 94 "2. ERROR in X.java (at line 3)\n" + 95 " Zork z;\n" + 96 " ^^^^\n" + 97 "Zork cannot be resolved to a type\n" + 98 "----------\n"); 99 } 100 // TYPE: MethodHeaderName ::= Modifiersopt TypeParameters Type 'Identifier' '(' test002()101 public void test002() throws Exception { 102 this.runNegativeTest( 103 new String[] { 104 "X.java", 105 "public class X {\n" + 106 " @Marker <T> @Marker int x() { return 10; };\n" + 107 " Zork z;\n" + 108 "}\n" + 109 "@java.lang.annotation.Target (java.lang.annotation.ElementType.TYPE_PARAMETER)\n" + 110 "@interface Marker {}\n", 111 112 "java/lang/annotation/ElementType.java", 113 "package java.lang.annotation;\n"+ 114 "public enum ElementType {\n" + 115 " TYPE,\n" + 116 " FIELD,\n" + 117 " METHOD,\n" + 118 " PARAMETER,\n" + 119 " CONSTRUCTOR,\n" + 120 " LOCAL_VARIABLE,\n" + 121 " ANNOTATION_TYPE,\n" + 122 " PACKAGE,\n" + 123 " TYPE_PARAMETER,\n" + 124 " TYPE_USE\n" + 125 "}\n" 126 }, 127 "----------\n" + 128 "1. ERROR in X.java (at line 2)\n" + 129 " @Marker <T> @Marker int x() { return 10; };\n" + 130 " ^^^^^^^\n" + 131 "The annotation @Marker is disallowed for this location\n" + 132 "----------\n" + 133 "2. ERROR in X.java (at line 2)\n" + 134 " @Marker <T> @Marker int x() { return 10; };\n" + 135 " ^^^^^^^\n" + 136 "The annotation @Marker is disallowed for this location\n" + 137 "----------\n" + 138 "3. ERROR in X.java (at line 3)\n" + 139 " Zork z;\n" + 140 " ^^^^\n" + 141 "Zork cannot be resolved to a type\n" + 142 "----------\n"); 143 } 144 // TYPE: MethodHeaderName ::= Modifiersopt Type 'Identifier' '(' test003()145 public void test003() throws Exception { 146 this.runNegativeTest( 147 new String[] { 148 "X.java", 149 "public class X {\n" + 150 " @Marker int x() { return 10; };\n" + 151 " Zork z;\n" + 152 "}\n" + 153 "@java.lang.annotation.Target (java.lang.annotation.ElementType.TYPE_PARAMETER)\n" + 154 "@interface Marker {}\n", 155 156 "java/lang/annotation/ElementType.java", 157 "package java.lang.annotation;\n"+ 158 "public enum ElementType {\n" + 159 " TYPE,\n" + 160 " FIELD,\n" + 161 " METHOD,\n" + 162 " PARAMETER,\n" + 163 " CONSTRUCTOR,\n" + 164 " LOCAL_VARIABLE,\n" + 165 " ANNOTATION_TYPE,\n" + 166 " PACKAGE,\n" + 167 " TYPE_PARAMETER,\n" + 168 " TYPE_USE\n" + 169 "}\n" 170 }, 171 "----------\n" + 172 "1. ERROR in X.java (at line 2)\n" + 173 " @Marker int x() { return 10; };\n" + 174 " ^^^^^^^\n" + 175 "The annotation @Marker is disallowed for this location\n" + 176 "----------\n" + 177 "2. ERROR in X.java (at line 3)\n" + 178 " Zork z;\n" + 179 " ^^^^\n" + 180 "Zork cannot be resolved to a type\n" + 181 "----------\n"); 182 } 183 // FormalParameter ::= Modifiersopt Type VariableDeclaratorIdOrThis test004()184 public void test004() throws Exception { 185 this.runNegativeTest( 186 new String[] { 187 "X.java", 188 "public class X {\n" + 189 " int x(@Marker int p) { return 10; };\n" + 190 " Zork z;\n" + 191 "}\n" + 192 "@java.lang.annotation.Target (java.lang.annotation.ElementType.TYPE_PARAMETER)\n" + 193 "@interface Marker {}\n", 194 195 "java/lang/annotation/ElementType.java", 196 "package java.lang.annotation;\n"+ 197 "public enum ElementType {\n" + 198 " TYPE,\n" + 199 " FIELD,\n" + 200 " METHOD,\n" + 201 " PARAMETER,\n" + 202 " CONSTRUCTOR,\n" + 203 " LOCAL_VARIABLE,\n" + 204 " ANNOTATION_TYPE,\n" + 205 " PACKAGE,\n" + 206 " TYPE_PARAMETER,\n" + 207 " TYPE_USE\n" + 208 "}\n" 209 }, 210 "----------\n" + 211 "1. ERROR in X.java (at line 2)\n" + 212 " int x(@Marker int p) { return 10; };\n" + 213 " ^^^^^^^\n" + 214 "The annotation @Marker is disallowed for this location\n" + 215 "----------\n" + 216 "2. ERROR in X.java (at line 3)\n" + 217 " Zork z;\n" + 218 " ^^^^\n" + 219 "Zork cannot be resolved to a type\n" + 220 "----------\n"); 221 } 222 // FormalParameter ::= Modifiersopt Type PushZeroTypeAnnotations '...' VariableDeclaratorIdOrThis test005()223 public void test005() throws Exception { 224 this.runNegativeTest( 225 new String[] { 226 "X.java", 227 "public class X {\n" + 228 " int x(@Marker int ... p) { return 10; };\n" + 229 " Zork z;\n" + 230 "}\n" + 231 "@java.lang.annotation.Target (java.lang.annotation.ElementType.TYPE_PARAMETER)\n" + 232 "@interface Marker {}\n", 233 234 "java/lang/annotation/ElementType.java", 235 "package java.lang.annotation;\n"+ 236 "public enum ElementType {\n" + 237 " TYPE,\n" + 238 " FIELD,\n" + 239 " METHOD,\n" + 240 " PARAMETER,\n" + 241 " CONSTRUCTOR,\n" + 242 " LOCAL_VARIABLE,\n" + 243 " ANNOTATION_TYPE,\n" + 244 " PACKAGE,\n" + 245 " TYPE_PARAMETER,\n" + 246 " TYPE_USE\n" + 247 "}\n" 248 }, 249 "----------\n" + 250 "1. ERROR in X.java (at line 2)\n" + 251 " int x(@Marker int ... p) { return 10; };\n" + 252 " ^^^^^^^\n" + 253 "The annotation @Marker is disallowed for this location\n" + 254 "----------\n" + 255 "2. ERROR in X.java (at line 3)\n" + 256 " Zork z;\n" + 257 " ^^^^\n" + 258 "Zork cannot be resolved to a type\n" + 259 "----------\n"); 260 } 261 // FormalParameter ::= Modifiersopt Type @308... TypeAnnotations '...' VariableDeclaratorIdOrThis test006()262 public void test006() throws Exception { 263 this.runNegativeTest( 264 new String[] { 265 "X.java", 266 "public class X {\n" + 267 " int x(@Marker int [] @Marker ... p) { return 10; };\n" + 268 " Zork z;\n" + 269 "}\n" 270 }, 271 "----------\n" + 272 "1. ERROR in X.java (at line 2)\n" + 273 " int x(@Marker int [] @Marker ... p) { return 10; };\n" + 274 " ^^^^^^\n" + 275 "Marker cannot be resolved to a type\n" + 276 "----------\n" + 277 "2. ERROR in X.java (at line 2)\n" + 278 " int x(@Marker int [] @Marker ... p) { return 10; };\n" + 279 " ^^^^^^\n" + 280 "Marker cannot be resolved to a type\n" + 281 "----------\n" + 282 "3. ERROR in X.java (at line 3)\n" + 283 " Zork z;\n" + 284 " ^^^^\n" + 285 "Zork cannot be resolved to a type\n" + 286 "----------\n"); 287 } 288 // UnionType ::= Type 289 // UnionType ::= UnionType '|' Type test007()290 public void test007() throws Exception { 291 this.runNegativeTest( 292 new String[] { 293 "X.java", 294 "public class X {\n" + 295 " int x() {\n" + 296 " try {\n" + 297 " } catch (@Marker NullPointerException | @Marker ArrayIndexOutOfBoundsException e) {\n" + 298 " }\n" + 299 " return 10;\n" + 300 " }\n" + 301 " Zork z;\n" + 302 "}\n" 303 }, 304 "----------\n" + 305 "1. ERROR in X.java (at line 4)\n" + 306 " } catch (@Marker NullPointerException | @Marker ArrayIndexOutOfBoundsException e) {\n" + 307 " ^^^^^^\n" + 308 "Marker cannot be resolved to a type\n" + 309 "----------\n" + 310 "2. ERROR in X.java (at line 4)\n" + 311 " } catch (@Marker NullPointerException | @Marker ArrayIndexOutOfBoundsException e) {\n" + 312 " ^^^^^^\n" + 313 "Marker cannot be resolved to a type\n" + 314 "----------\n" + 315 "3. ERROR in X.java (at line 8)\n" + 316 " Zork z;\n" + 317 " ^^^^\n" + 318 "Zork cannot be resolved to a type\n" + 319 "----------\n"); 320 } 321 // LocalVariableDeclaration ::= Type PushModifiers VariableDeclarators 322 // LocalVariableDeclaration ::= Modifiers Type PushRealModifiers VariableDeclarators test008()323 public void test008() throws Exception { 324 this.runNegativeTest( 325 new String[] { 326 "X.java", 327 "public class X {\n" + 328 " int x() {\n" + 329 " @Marker int p;\n" + 330 " final @Marker int q;\n" + 331 " @Marker final int r;\n" + 332 " return 10;\n" + 333 " }\n" + 334 " Zork z;\n" + 335 "}\n" + 336 "@java.lang.annotation.Target (java.lang.annotation.ElementType.TYPE_PARAMETER)\n" + 337 "@interface Marker {}\n", 338 339 "java/lang/annotation/ElementType.java", 340 "package java.lang.annotation;\n"+ 341 "public enum ElementType {\n" + 342 " TYPE,\n" + 343 " FIELD,\n" + 344 " METHOD,\n" + 345 " PARAMETER,\n" + 346 " CONSTRUCTOR,\n" + 347 " LOCAL_VARIABLE,\n" + 348 " ANNOTATION_TYPE,\n" + 349 " PACKAGE,\n" + 350 " TYPE_PARAMETER,\n" + 351 " TYPE_USE\n" + 352 "}\n" 353 }, 354 "----------\n" + 355 "1. ERROR in X.java (at line 3)\n" + 356 " @Marker int p;\n" + 357 " ^^^^^^^\n" + 358 "The annotation @Marker is disallowed for this location\n" + 359 "----------\n" + 360 "2. ERROR in X.java (at line 4)\n" + 361 " final @Marker int q;\n" + 362 " ^^^^^^^\n" + 363 "The annotation @Marker is disallowed for this location\n" + 364 "----------\n" + 365 "3. ERROR in X.java (at line 5)\n" + 366 " @Marker final int r;\n" + 367 " ^^^^^^^\n" + 368 "The annotation @Marker is disallowed for this location\n" + 369 "----------\n" + 370 "4. ERROR in X.java (at line 8)\n" + 371 " Zork z;\n" + 372 " ^^^^\n" + 373 "Zork cannot be resolved to a type\n" + 374 "----------\n"); 375 } 376 // Resource ::= Type PushModifiers VariableDeclaratorId EnterVariable '=' ForceNoDiet VariableInitializer RestoreDiet ExitVariableWithInitialization 377 // Resource ::= Modifiers Type PushRealModifiers VariableDeclaratorId EnterVariable '=' ForceNoDiet VariableInitializer RestoreDiet ExitVariableWithInitialization test009()378 public void test009() throws Exception { 379 this.runNegativeTest( 380 new String[] { 381 "X.java", 382 "public class X {\n" + 383 " int x() {\n" + 384 " try (@Marker Integer p = null; final @Marker Integer q = null; @Marker final Integer r = null) {\n" + 385 " }\n" + 386 " return 10;\n" + 387 " }\n" + 388 " Zork z;\n" + 389 "}\n" + 390 "@java.lang.annotation.Target (java.lang.annotation.ElementType.TYPE_PARAMETER)\n" + 391 "@interface Marker {}\n", 392 393 "java/lang/annotation/ElementType.java", 394 "package java.lang.annotation;\n"+ 395 "public enum ElementType {\n" + 396 " TYPE,\n" + 397 " FIELD,\n" + 398 " METHOD,\n" + 399 " PARAMETER,\n" + 400 " CONSTRUCTOR,\n" + 401 " LOCAL_VARIABLE,\n" + 402 " ANNOTATION_TYPE,\n" + 403 " PACKAGE,\n" + 404 " TYPE_PARAMETER,\n" + 405 " TYPE_USE\n" + 406 "}\n" 407 }, 408 "----------\n" + 409 "1. ERROR in X.java (at line 3)\n" + 410 " try (@Marker Integer p = null; final @Marker Integer q = null; @Marker final Integer r = null) {\n" + 411 " ^^^^^^^\n" + 412 "The annotation @Marker is disallowed for this location\n" + 413 "----------\n" + 414 "2. ERROR in X.java (at line 3)\n" + 415 " try (@Marker Integer p = null; final @Marker Integer q = null; @Marker final Integer r = null) {\n" + 416 " ^^^^^^^\n" + 417 "The resource type Integer does not implement java.lang.AutoCloseable\n" + 418 "----------\n" + 419 "3. ERROR in X.java (at line 3)\n" + 420 " try (@Marker Integer p = null; final @Marker Integer q = null; @Marker final Integer r = null) {\n" + 421 " ^^^^^^^\n" + 422 "The annotation @Marker is disallowed for this location\n" + 423 "----------\n" + 424 "4. ERROR in X.java (at line 3)\n" + 425 " try (@Marker Integer p = null; final @Marker Integer q = null; @Marker final Integer r = null) {\n" + 426 " ^^^^^^^\n" + 427 "The resource type Integer does not implement java.lang.AutoCloseable\n" + 428 "----------\n" + 429 "5. ERROR in X.java (at line 3)\n" + 430 " try (@Marker Integer p = null; final @Marker Integer q = null; @Marker final Integer r = null) {\n" + 431 " ^^^^^^^\n" + 432 "The annotation @Marker is disallowed for this location\n" + 433 "----------\n" + 434 "6. ERROR in X.java (at line 3)\n" + 435 " try (@Marker Integer p = null; final @Marker Integer q = null; @Marker final Integer r = null) {\n" + 436 " ^^^^^^^\n" + 437 "The resource type Integer does not implement java.lang.AutoCloseable\n" + 438 "----------\n" + 439 "7. ERROR in X.java (at line 7)\n" + 440 " Zork z;\n" + 441 " ^^^^\n" + 442 "Zork cannot be resolved to a type\n" + 443 "----------\n"); 444 } 445 // EnhancedForStatementHeaderInit ::= 'for' '(' Type PushModifiers Identifier Dimsopt 446 // EnhancedForStatementHeaderInit ::= 'for' '(' Modifiers Type PushRealModifiers Identifier Dimsopt test010()447 public void test010() throws Exception { 448 this.runNegativeTest( 449 new String[] { 450 "X.java", 451 "public class X {\n" + 452 " int x() {\n" + 453 " for (@Marker int i: new int[3]) {}\n" + 454 " for (final @Marker int i: new int[3]) {}\n" + 455 " for (@Marker final int i: new int[3]) {}\n" + 456 " return 10;\n" + 457 " }\n" + 458 " Zork z;\n" + 459 "}\n" + 460 "@java.lang.annotation.Target (java.lang.annotation.ElementType.TYPE_PARAMETER)\n" + 461 "@interface Marker {}\n", 462 463 "java/lang/annotation/ElementType.java", 464 "package java.lang.annotation;\n"+ 465 "public enum ElementType {\n" + 466 " TYPE,\n" + 467 " FIELD,\n" + 468 " METHOD,\n" + 469 " PARAMETER,\n" + 470 " CONSTRUCTOR,\n" + 471 " LOCAL_VARIABLE,\n" + 472 " ANNOTATION_TYPE,\n" + 473 " PACKAGE,\n" + 474 " TYPE_PARAMETER,\n" + 475 " TYPE_USE\n" + 476 "}\n" 477 }, 478 "----------\n" + 479 "1. ERROR in X.java (at line 3)\n" + 480 " for (@Marker int i: new int[3]) {}\n" + 481 " ^^^^^^^\n" + 482 "The annotation @Marker is disallowed for this location\n" + 483 "----------\n" + 484 "2. ERROR in X.java (at line 4)\n" + 485 " for (final @Marker int i: new int[3]) {}\n" + 486 " ^^^^^^^\n" + 487 "The annotation @Marker is disallowed for this location\n" + 488 "----------\n" + 489 "3. ERROR in X.java (at line 5)\n" + 490 " for (@Marker final int i: new int[3]) {}\n" + 491 " ^^^^^^^\n" + 492 "The annotation @Marker is disallowed for this location\n" + 493 "----------\n" + 494 "4. ERROR in X.java (at line 8)\n" + 495 " Zork z;\n" + 496 " ^^^^\n" + 497 "Zork cannot be resolved to a type\n" + 498 "----------\n"); 499 } 500 // AnnotationMethodHeaderName ::= Modifiersopt TypeParameters Type 'Identifier' '(' 501 // AnnotationMethodHeaderName ::= Modifiersopt Type 'Identifier' '(' test011()502 public void test011() throws Exception { 503 this.runNegativeTest( 504 new String[] { 505 "X.java", 506 "public @interface X { \n" + 507 " public @Marker String value(); \n" + 508 " @Marker String value2(); \n" + 509 " @Marker public String value3(); \n" + 510 " public @Marker <T> @Marker String value4(); \n" + 511 " @Marker <T> @Marker String value5(); \n" + 512 " @Marker public <T> @Marker String value6(); \n" + 513 "}\n" + 514 515 "@java.lang.annotation.Target (java.lang.annotation.ElementType.TYPE_PARAMETER)\n" + 516 "@interface Marker {}\n", 517 518 "java/lang/annotation/ElementType.java", 519 "package java.lang.annotation;\n"+ 520 "public enum ElementType {\n" + 521 " TYPE,\n" + 522 " FIELD,\n" + 523 " METHOD,\n" + 524 " PARAMETER,\n" + 525 " CONSTRUCTOR,\n" + 526 " LOCAL_VARIABLE,\n" + 527 " ANNOTATION_TYPE,\n" + 528 " PACKAGE,\n" + 529 " TYPE_PARAMETER,\n" + 530 " TYPE_USE\n" + 531 "}\n" 532 }, 533 "----------\n" + 534 "1. ERROR in X.java (at line 2)\n" + 535 " public @Marker String value(); \n" + 536 " ^^^^^^^\n" + 537 "The annotation @Marker is disallowed for this location\n" + 538 "----------\n" + 539 "2. ERROR in X.java (at line 3)\n" + 540 " @Marker String value2(); \n" + 541 " ^^^^^^^\n" + 542 "The annotation @Marker is disallowed for this location\n" + 543 "----------\n" + 544 "3. ERROR in X.java (at line 4)\n" + 545 " @Marker public String value3(); \n" + 546 " ^^^^^^^\n" + 547 "The annotation @Marker is disallowed for this location\n" + 548 "----------\n" + 549 "4. ERROR in X.java (at line 5)\n" + 550 " public @Marker <T> @Marker String value4(); \n" + 551 " ^^^^^^^\n" + 552 "The annotation @Marker is disallowed for this location\n" + 553 "----------\n" + 554 "5. ERROR in X.java (at line 5)\n" + 555 " public @Marker <T> @Marker String value4(); \n" + 556 " ^^^^^^^\n" + 557 "Syntax error, type annotations are illegal here\n" + 558 "----------\n" + 559 "6. ERROR in X.java (at line 5)\n" + 560 " public @Marker <T> @Marker String value4(); \n" + 561 " ^^^^^^^^\n" + 562 "Annotation attributes cannot be generic\n" + 563 "----------\n" + 564 "7. ERROR in X.java (at line 6)\n" + 565 " @Marker <T> @Marker String value5(); \n" + 566 " ^^^^^^^\n" + 567 "The annotation @Marker is disallowed for this location\n" + 568 "----------\n" + 569 "8. ERROR in X.java (at line 6)\n" + 570 " @Marker <T> @Marker String value5(); \n" + 571 " ^^^^^^^\n" + 572 "Syntax error, type annotations are illegal here\n" + 573 "----------\n" + 574 "9. ERROR in X.java (at line 6)\n" + 575 " @Marker <T> @Marker String value5(); \n" + 576 " ^^^^^^^^\n" + 577 "Annotation attributes cannot be generic\n" + 578 "----------\n" + 579 "10. ERROR in X.java (at line 7)\n" + 580 " @Marker public <T> @Marker String value6(); \n" + 581 " ^^^^^^^\n" + 582 "The annotation @Marker is disallowed for this location\n" + 583 "----------\n" + 584 "11. ERROR in X.java (at line 7)\n" + 585 " @Marker public <T> @Marker String value6(); \n" + 586 " ^^^^^^^\n" + 587 "Syntax error, type annotations are illegal here\n" + 588 "----------\n" + 589 "12. ERROR in X.java (at line 7)\n" + 590 " @Marker public <T> @Marker String value6(); \n" + 591 " ^^^^^^^^\n" + 592 "Annotation attributes cannot be generic\n" + 593 "----------\n"); 594 } 595 // PrimaryNoNewArray ::= PrimitiveType Dims '.' 'class' 596 // PrimaryNoNewArray ::= PrimitiveType '.' 'class' test012()597 public void test012() throws Exception { 598 this.runNegativeTest( 599 new String[] { 600 "X.java", 601 "public class X { \n" + 602 " public void value() {\n" + 603 " Object o = @Marker int.class;\n" + 604 " Object o2 = @Marker int @Marker[] [] @Marker[].class;\n" + 605 " }\n" + 606 "}\n" 607 }, 608 "----------\n" + 609 "1. ERROR in X.java (at line 3)\n" + 610 " Object o = @Marker int.class;\n" + 611 " ^^^^^^^\n" + 612 "Syntax error, type annotations are illegal here\n" + 613 "----------\n" + 614 "2. ERROR in X.java (at line 4)\n" + 615 " Object o2 = @Marker int @Marker[] [] @Marker[].class;\n" + 616 " ^^^^^^^\n" + 617 "Syntax error, type annotations are illegal here\n" + 618 "----------\n" + 619 "3. ERROR in X.java (at line 4)\n" + 620 " Object o2 = @Marker int @Marker[] [] @Marker[].class;\n" + 621 " ^^^^^^^\n" + 622 "Syntax error, type annotations are illegal here\n" + 623 "----------\n" + 624 "4. ERROR in X.java (at line 4)\n" + 625 " Object o2 = @Marker int @Marker[] [] @Marker[].class;\n" + 626 " ^^^^^^^\n" + 627 "Syntax error, type annotations are illegal here\n" + 628 "----------\n"); 629 } 630 // ReferenceExpression ::= PrimitiveType Dims '::' NonWildTypeArgumentsopt IdentifierOrNew test013()631 public void test013() throws Exception { 632 this.runNegativeTest( 633 new String[] { 634 "X.java", 635 "interface I {\n" + 636 " Object copy(int [] ia);\n" + 637 "}\n" + 638 "public class X {\n" + 639 " public static void main(String [] args) {\n" + 640 " I i = @Marker int @Marker []::<String>clone;\n" + 641 " Zork z;\n" + 642 " }\n" + 643 "}\n" 644 }, 645 "----------\n" + 646 "1. ERROR in X.java (at line 6)\n" + 647 " I i = @Marker int @Marker []::<String>clone;\n" + 648 " ^^^^^^\n" + 649 "Marker cannot be resolved to a type\n" + 650 "----------\n" + 651 "2. ERROR in X.java (at line 6)\n" + 652 " I i = @Marker int @Marker []::<String>clone;\n" + 653 " ^^^^^^\n" + 654 "Marker cannot be resolved to a type\n" + 655 "----------\n" + 656 "3. WARNING in X.java (at line 6)\n" + 657 " I i = @Marker int @Marker []::<String>clone;\n" + 658 " ^^^^^^\n" + 659 "Unused type arguments for the non generic method clone() of type Object; it should not be parameterized with arguments <String>\n" + 660 "----------\n" + 661 "4. ERROR in X.java (at line 7)\n" + 662 " Zork z;\n" + 663 " ^^^^\n" + 664 "Zork cannot be resolved to a type\n" + 665 "----------\n"); 666 } 667 // ArrayCreationWithoutArrayInitializer ::= 'new' PrimitiveType DimWithOrWithOutExprs 668 // ArrayCreationWithArrayInitializer ::= 'new' PrimitiveType DimWithOrWithOutExprs ArrayInitializer test014()669 public void test014() throws Exception { 670 this.runNegativeTest( 671 new String[] { 672 "X.java", 673 "public class X {\n" + 674 " public static void main(String [] args) {\n" + 675 " int i [] = new @Marker int @Marker [4];\n" + 676 " int j [] = new @Marker int @Marker [] { 10 };\n" + 677 " Zork z;\n" + 678 " }\n" + 679 "}\n" 680 }, 681 "----------\n" + 682 "1. ERROR in X.java (at line 3)\n" + 683 " int i [] = new @Marker int @Marker [4];\n" + 684 " ^^^^^^\n" + 685 "Marker cannot be resolved to a type\n" + 686 "----------\n" + 687 "2. ERROR in X.java (at line 3)\n" + 688 " int i [] = new @Marker int @Marker [4];\n" + 689 " ^^^^^^\n" + 690 "Marker cannot be resolved to a type\n" + 691 "----------\n" + 692 "3. ERROR in X.java (at line 4)\n" + 693 " int j [] = new @Marker int @Marker [] { 10 };\n" + 694 " ^^^^^^\n" + 695 "Marker cannot be resolved to a type\n" + 696 "----------\n" + 697 "4. ERROR in X.java (at line 4)\n" + 698 " int j [] = new @Marker int @Marker [] { 10 };\n" + 699 " ^^^^^^\n" + 700 "Marker cannot be resolved to a type\n" + 701 "----------\n" + 702 "5. ERROR in X.java (at line 5)\n" + 703 " Zork z;\n" + 704 " ^^^^\n" + 705 "Zork cannot be resolved to a type\n" + 706 "----------\n"); 707 } 708 // CastExpression ::= PushLPAREN PrimitiveType Dimsopt PushRPAREN InsideCastExpression UnaryExpression test015()709 public void test015() throws Exception { 710 this.runNegativeTest( 711 new String[] { 712 "X.java", 713 "public class X {\n" + 714 " public static void main(String [] args) {\n" + 715 " int i = (@Marker int) 0;\n" + 716 " int j [] = (@Marker int @Marker []) null;\n" + 717 " Zork z;\n" + 718 " }\n" + 719 "}\n" 720 }, 721 "----------\n" + 722 "1. ERROR in X.java (at line 3)\n" + 723 " int i = (@Marker int) 0;\n" + 724 " ^^^^^^\n" + 725 "Marker cannot be resolved to a type\n" + 726 "----------\n" + 727 "2. ERROR in X.java (at line 4)\n" + 728 " int j [] = (@Marker int @Marker []) null;\n" + 729 " ^^^^^^\n" + 730 "Marker cannot be resolved to a type\n" + 731 "----------\n" + 732 "3. ERROR in X.java (at line 4)\n" + 733 " int j [] = (@Marker int @Marker []) null;\n" + 734 " ^^^^^^\n" + 735 "Marker cannot be resolved to a type\n" + 736 "----------\n" + 737 "4. ERROR in X.java (at line 5)\n" + 738 " Zork z;\n" + 739 " ^^^^\n" + 740 "Zork cannot be resolved to a type\n" + 741 "----------\n"); 742 } 743 // InstanceofExpression ::= InstanceofExpression 'instanceof' ReferenceType test016()744 public void test016() throws Exception { 745 this.runNegativeTest( 746 new String[] { 747 "X.java", 748 "public class X {\n" + 749 " public static void main(String [] args) {\n" + 750 " if (args instanceof @Readonly String) {\n" + 751 " }\n" + 752 " }\n" + 753 "}\n" 754 }, 755 "----------\n" + 756 "1. ERROR in X.java (at line 3)\n" + 757 " if (args instanceof @Readonly String) {\n" + 758 " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 759 "Incompatible conditional operand types String[] and String\n" + 760 "----------\n" + 761 "2. ERROR in X.java (at line 3)\n" + 762 " if (args instanceof @Readonly String) {\n" + 763 " ^^^^^^^^\n" + 764 "Readonly cannot be resolved to a type\n" + 765 "----------\n"); 766 } 767 // TypeArgument ::= ReferenceType test017()768 public void test017() throws Exception { 769 this.runNegativeTest( 770 new String[] { 771 "X.java", 772 "public class X extends Y<@Marker Integer, String> {}\n" + 773 "class Y<T, V> {\n" + 774 " Zork z;\n" + 775 "}\n" 776 }, 777 "----------\n" + 778 "1. ERROR in X.java (at line 1)\n" + 779 " public class X extends Y<@Marker Integer, String> {}\n" + 780 " ^^^^^^\n" + 781 "Marker cannot be resolved to a type\n" + 782 "----------\n" + 783 "2. ERROR in X.java (at line 3)\n" + 784 " Zork z;\n" + 785 " ^^^^\n" + 786 "Zork cannot be resolved to a type\n" + 787 "----------\n"); 788 } 789 // ReferenceType1 ::= ReferenceType '>' test018()790 public void test018() throws Exception { 791 this.runNegativeTest( 792 new String[] { 793 "X.java", 794 "public class X extends Y<@Marker Integer> {}\n" + 795 "class Y<T> {\n" + 796 " Zork z;\n" + 797 "}\n" 798 }, 799 "----------\n" + 800 "1. ERROR in X.java (at line 1)\n" + 801 " public class X extends Y<@Marker Integer> {}\n" + 802 " ^^^^^^\n" + 803 "Marker cannot be resolved to a type\n" + 804 "----------\n" + 805 "2. ERROR in X.java (at line 3)\n" + 806 " Zork z;\n" + 807 " ^^^^\n" + 808 "Zork cannot be resolved to a type\n" + 809 "----------\n"); 810 } 811 812 // ReferenceType2 ::= ReferenceType '>>' test019()813 public void test019() throws Exception { 814 this.runNegativeTest( 815 new String[] { 816 "X.java", 817 "public class X<T extends Object & Comparable<? super @Marker String>> {}\n" + 818 "class Y<T> {\n" + 819 " Zork z;\n" + 820 "}\n" 821 }, 822 "----------\n" + 823 "1. ERROR in X.java (at line 1)\n" + 824 " public class X<T extends Object & Comparable<? super @Marker String>> {}\n" + 825 " ^^^^^^\n" + 826 "Marker cannot be resolved to a type\n" + 827 "----------\n" + 828 "2. ERROR in X.java (at line 3)\n" + 829 " Zork z;\n" + 830 " ^^^^\n" + 831 "Zork cannot be resolved to a type\n" + 832 "----------\n"); 833 } 834 // ReferenceType3 ::= ReferenceType '>>>' test020()835 public void test020() throws Exception { 836 this.runNegativeTest( 837 new String[] { 838 "X.java", 839 "public class X<A extends X<X<X<@Marker String>>>> {}\n" + 840 "class Y<T> {\n" + 841 " Zork z;\n" + 842 "}\n" 843 }, 844 "----------\n" + 845 "1. ERROR in X.java (at line 1)\n" + 846 " public class X<A extends X<X<X<@Marker String>>>> {}\n" + 847 " ^\n" + 848 "Bound mismatch: The type X<X<String>> is not a valid substitute for the bounded parameter <A extends X<X<X<String>>>> of the type X<A>\n" + 849 "----------\n" + 850 "2. ERROR in X.java (at line 1)\n" + 851 " public class X<A extends X<X<X<@Marker String>>>> {}\n" + 852 " ^\n" + 853 "Bound mismatch: The type X<String> is not a valid substitute for the bounded parameter <A extends X<X<X<String>>>> of the type X<A>\n" + 854 "----------\n" + 855 "3. ERROR in X.java (at line 1)\n" + 856 " public class X<A extends X<X<X<@Marker String>>>> {}\n" + 857 " ^^^^^^^^^^^^^^\n" + 858 "Bound mismatch: The type String is not a valid substitute for the bounded parameter <A extends X<X<X<String>>>> of the type X<A>\n" + 859 "----------\n" + 860 "4. ERROR in X.java (at line 1)\n" + 861 " public class X<A extends X<X<X<@Marker String>>>> {}\n" + 862 " ^^^^^^\n" + 863 "Marker cannot be resolved to a type\n" + 864 "----------\n" + 865 "5. ERROR in X.java (at line 3)\n" + 866 " Zork z;\n" + 867 " ^^^^\n" + 868 "Zork cannot be resolved to a type\n" + 869 "----------\n"); 870 } 871 // WildcardBounds ::= 'extends' ReferenceType 872 // WildcardBounds ::= 'super' ReferenceType test021()873 public void test021() throws Exception { 874 this.runNegativeTest( 875 new String[] { 876 "X.java", 877 "public class X {\n" + 878 " void foo(Map<@Marker ? super @Marker Object, @Marker ? extends @Marker String> m){}\n" + 879 " void goo(Map<@Marker ? extends @Marker Object, @Marker ? super @Marker String> m){}\n" + 880 "}\n" 881 }, 882 "----------\n" + 883 "1. ERROR in X.java (at line 2)\n" + 884 " void foo(Map<@Marker ? super @Marker Object, @Marker ? extends @Marker String> m){}\n" + 885 " ^^^\n" + 886 "Map cannot be resolved to a type\n" + 887 "----------\n" + 888 "2. ERROR in X.java (at line 2)\n" + 889 " void foo(Map<@Marker ? super @Marker Object, @Marker ? extends @Marker String> m){}\n" + 890 " ^^^^^^\n" + 891 "Marker cannot be resolved to a type\n" + 892 "----------\n" + 893 "3. ERROR in X.java (at line 2)\n" + 894 " void foo(Map<@Marker ? super @Marker Object, @Marker ? extends @Marker String> m){}\n" + 895 " ^^^^^^\n" + 896 "Marker cannot be resolved to a type\n" + 897 "----------\n" + 898 "4. ERROR in X.java (at line 2)\n" + 899 " void foo(Map<@Marker ? super @Marker Object, @Marker ? extends @Marker String> m){}\n" + 900 " ^^^^^^\n" + 901 "Marker cannot be resolved to a type\n" + 902 "----------\n" + 903 "5. ERROR in X.java (at line 2)\n" + 904 " void foo(Map<@Marker ? super @Marker Object, @Marker ? extends @Marker String> m){}\n" + 905 " ^^^^^^\n" + 906 "Marker cannot be resolved to a type\n" + 907 "----------\n" + 908 "6. ERROR in X.java (at line 3)\n" + 909 " void goo(Map<@Marker ? extends @Marker Object, @Marker ? super @Marker String> m){}\n" + 910 " ^^^\n" + 911 "Map cannot be resolved to a type\n" + 912 "----------\n" + 913 "7. ERROR in X.java (at line 3)\n" + 914 " void goo(Map<@Marker ? extends @Marker Object, @Marker ? super @Marker String> m){}\n" + 915 " ^^^^^^\n" + 916 "Marker cannot be resolved to a type\n" + 917 "----------\n" + 918 "8. ERROR in X.java (at line 3)\n" + 919 " void goo(Map<@Marker ? extends @Marker Object, @Marker ? super @Marker String> m){}\n" + 920 " ^^^^^^\n" + 921 "Marker cannot be resolved to a type\n" + 922 "----------\n" + 923 "9. ERROR in X.java (at line 3)\n" + 924 " void goo(Map<@Marker ? extends @Marker Object, @Marker ? super @Marker String> m){}\n" + 925 " ^^^^^^\n" + 926 "Marker cannot be resolved to a type\n" + 927 "----------\n" + 928 "10. ERROR in X.java (at line 3)\n" + 929 " void goo(Map<@Marker ? extends @Marker Object, @Marker ? super @Marker String> m){}\n" + 930 " ^^^^^^\n" + 931 "Marker cannot be resolved to a type\n" + 932 "----------\n"); 933 } 934 // TypeParameter ::= TypeParameterHeader 'extends' ReferenceType test022()935 public void test022() throws Exception { 936 this.runNegativeTest( 937 new String[] { 938 "X.java", 939 "public class X <@Marker T extends @Marker Y<@Marker ?>, @Marker Q extends @Marker Integer> {\n" + 940 "}\n" + 941 "class Y<T> {}\n" 942 }, 943 "----------\n" + 944 "1. ERROR in X.java (at line 1)\n" + 945 " public class X <@Marker T extends @Marker Y<@Marker ?>, @Marker Q extends @Marker Integer> {\n" + 946 " ^^^^^^\n" + 947 "Marker cannot be resolved to a type\n" + 948 "----------\n" + 949 "2. ERROR in X.java (at line 1)\n" + 950 " public class X <@Marker T extends @Marker Y<@Marker ?>, @Marker Q extends @Marker Integer> {\n" + 951 " ^^^^^^\n" + 952 "Marker cannot be resolved to a type\n" + 953 "----------\n" + 954 "3. ERROR in X.java (at line 1)\n" + 955 " public class X <@Marker T extends @Marker Y<@Marker ?>, @Marker Q extends @Marker Integer> {\n" + 956 " ^^^^^^\n" + 957 "Marker cannot be resolved to a type\n" + 958 "----------\n" + 959 "4. ERROR in X.java (at line 1)\n" + 960 " public class X <@Marker T extends @Marker Y<@Marker ?>, @Marker Q extends @Marker Integer> {\n" + 961 " ^^^^^^\n" + 962 "Marker cannot be resolved to a type\n" + 963 "----------\n" + 964 "5. WARNING in X.java (at line 1)\n" + 965 " public class X <@Marker T extends @Marker Y<@Marker ?>, @Marker Q extends @Marker Integer> {\n" + 966 " ^^^^^^^^^^^^^^^\n" + 967 "The type parameter Q should not be bounded by the final type Integer. Final types cannot be further extended\n" + 968 "----------\n" + 969 "6. ERROR in X.java (at line 1)\n" + 970 " public class X <@Marker T extends @Marker Y<@Marker ?>, @Marker Q extends @Marker Integer> {\n" + 971 " ^^^^^^\n" + 972 "Marker cannot be resolved to a type\n" + 973 "----------\n"); 974 } 975 // TypeParameter ::= TypeParameterHeader 'extends' ReferenceType AdditionalBoundList 976 // AdditionalBound ::= '&' ReferenceType 977 // TypeParameter1 ::= TypeParameterHeader 'extends' ReferenceType AdditionalBoundList1 test023()978 public void test023() throws Exception { 979 this.runNegativeTest( 980 new String[] { 981 "I.java", 982 "public interface I<U extends J<? extends I<U>>> {\n" + 983 "}\n" + 984 "interface J<T extends I<? extends J<T>>> {\n" + 985 "}\n" + 986 "class CI<U extends CJ<T, U> & @Marker J<@Marker T>,\n" + 987 " T extends CI<U, T> & @Marker I<U>>\n" + 988 " implements I<U> {\n" + 989 "}\n" + 990 "class CJ<T extends CI<U, T> & @Marker I<@Marker U>,\n" + 991 " U extends CJ<T, U> & J<T>>\n" + 992 " implements J<T> {\n" + 993 "}\n" 994 }, 995 "----------\n" + 996 "1. ERROR in I.java (at line 5)\n" + 997 " class CI<U extends CJ<T, U> & @Marker J<@Marker T>,\n" + 998 " ^^^^^^\n" + 999 "Marker cannot be resolved to a type\n" + 1000 "----------\n" + 1001 "2. ERROR in I.java (at line 5)\n" + 1002 " class CI<U extends CJ<T, U> & @Marker J<@Marker T>,\n" + 1003 " ^^^^^^\n" + 1004 "Marker cannot be resolved to a type\n" + 1005 "----------\n" + 1006 "3. ERROR in I.java (at line 6)\n" + 1007 " T extends CI<U, T> & @Marker I<U>>\n" + 1008 " ^^^^^^\n" + 1009 "Marker cannot be resolved to a type\n" + 1010 "----------\n" + 1011 "4. ERROR in I.java (at line 9)\n" + 1012 " class CJ<T extends CI<U, T> & @Marker I<@Marker U>,\n" + 1013 " ^^^^^^\n" + 1014 "Marker cannot be resolved to a type\n" + 1015 "----------\n" + 1016 "5. ERROR in I.java (at line 9)\n" + 1017 " class CJ<T extends CI<U, T> & @Marker I<@Marker U>,\n" + 1018 " ^^^^^^\n" + 1019 "Marker cannot be resolved to a type\n" + 1020 "----------\n"); 1021 } 1022 // InstanceofExpression_NotName ::= Name 'instanceof' ReferenceType test024()1023 public void test024() throws Exception { 1024 this.runNegativeTest( 1025 new String[] { 1026 "X.java", 1027 "public class X<E> {\n" + 1028 " class Y {\n" + 1029 " E e;\n" + 1030 " E getOtherElement(Object other) {\n" + 1031 " if (!(other instanceof @Marker X<?>.Y)) {};\n" + 1032 " return null;\n" + 1033 " }\n" + 1034 " }\n" + 1035 "}\n" 1036 }, 1037 "----------\n" + 1038 "1. ERROR in X.java (at line 5)\n" + 1039 " if (!(other instanceof @Marker X<?>.Y)) {};\n" + 1040 " ^^^^^^\n" + 1041 "Marker cannot be resolved to a type\n" + 1042 "----------\n"); 1043 } 1044 // InstanceofExpression_NotName ::= InstanceofExpression_NotName 'instanceof' ReferenceType test025()1045 public void test025() throws Exception { 1046 this.runNegativeTest( 1047 new String[] { 1048 "X.java", 1049 "public class X<P, C> {\n" + 1050 " public X() {\n" + 1051 " if (!(this instanceof @Marker X)) {}\n" + 1052 " }\n" + 1053 "}\n" 1054 }, 1055 "----------\n" + 1056 "1. ERROR in X.java (at line 3)\n" + 1057 " if (!(this instanceof @Marker X)) {}\n" + 1058 " ^^^^^^\n" + 1059 "Marker cannot be resolved to a type\n" + 1060 "----------\n"); 1061 } 1062 // ReferenceExpressionTypeArgumentsAndTrunk ::= OnlyTypeArguments '.' ClassOrInterfaceType Dimsopt test026()1063 public void test026() throws Exception { 1064 this.runNegativeTest( 1065 new String[] { 1066 "X.java", 1067 "interface I {\n" + 1068 " void foo(Y<String>.Z z, int x);\n" + 1069 "}\n" + 1070 "public class X {\n" + 1071 " public static void main(String [] args) {\n" + 1072 " I i = Y<String>.@Marker Z::foo;\n" + 1073 " i.foo(new Y<String>().new Z(), 10); \n" + 1074 " Zork z;\n" + 1075 " }\n" + 1076 "}\n" + 1077 "class Y<T> {\n" + 1078 " class Z {\n" + 1079 " void foo(int x) {\n" + 1080 " System.out.println(x);\n" + 1081 " }\n" + 1082 " }\n" + 1083 "}\n" 1084 }, 1085 "----------\n" + 1086 "1. ERROR in X.java (at line 6)\n" + 1087 " I i = Y<String>.@Marker Z::foo;\n" + 1088 " ^^^^^^\n" + 1089 "Marker cannot be resolved to a type\n" + 1090 "----------\n" + 1091 "2. ERROR in X.java (at line 8)\n" + 1092 " Zork z;\n" + 1093 " ^^^^\n" + 1094 "Zork cannot be resolved to a type\n" + 1095 "----------\n"); 1096 } 1097 // ArrayCreationWithoutArrayInitializer ::= 'new' ClassOrInterfaceType DimWithOrWithOutExprs 1098 // ArrayCreationWithArrayInitializer ::= 'new' ClassOrInterfaceType DimWithOrWithOutExprs ArrayInitializer test027()1099 public void test027() throws Exception { 1100 this.runNegativeTest( 1101 new String[] { 1102 "X.java", 1103 "public class X {\n" + 1104 " public static void main(String [] args) {\n" + 1105 " X [] x = new @Marker X @Marker [5];\n" + 1106 " X [] x2 = new @Marker X @Marker [] { null };\n" + 1107 " Zork z;\n" + 1108 " }\n" + 1109 "}\n" }, 1110 "----------\n" + 1111 "1. ERROR in X.java (at line 3)\n" + 1112 " X [] x = new @Marker X @Marker [5];\n" + 1113 " ^^^^^^\n" + 1114 "Marker cannot be resolved to a type\n" + 1115 "----------\n" + 1116 "2. ERROR in X.java (at line 3)\n" + 1117 " X [] x = new @Marker X @Marker [5];\n" + 1118 " ^^^^^^\n" + 1119 "Marker cannot be resolved to a type\n" + 1120 "----------\n" + 1121 "3. ERROR in X.java (at line 4)\n" + 1122 " X [] x2 = new @Marker X @Marker [] { null };\n" + 1123 " ^^^^^^\n" + 1124 "Marker cannot be resolved to a type\n" + 1125 "----------\n" + 1126 "4. ERROR in X.java (at line 4)\n" + 1127 " X [] x2 = new @Marker X @Marker [] { null };\n" + 1128 " ^^^^^^\n" + 1129 "Marker cannot be resolved to a type\n" + 1130 "----------\n" + 1131 "5. ERROR in X.java (at line 5)\n" + 1132 " Zork z;\n" + 1133 " ^^^^\n" + 1134 "Zork cannot be resolved to a type\n" + 1135 "----------\n"); 1136 } 1137 // CastExpression ::= PushLPAREN Name OnlyTypeArgumentsForCastExpression '.' ClassOrInterfaceType Dimsopt PushRPAREN InsideCastExpressionWithQualifiedGenerics UnaryExpressionNotPlusMinus test028()1138 public void test028() throws Exception { 1139 this.runNegativeTest( 1140 new String[] { 1141 "X.java", 1142 "public class X {\n" + 1143 " public static void main(String [] args) {\n" + 1144 " java.util.Map.Entry [] e = (java.util.Map<String, String>.@Marker Entry []) null;\n" + 1145 " }\n" + 1146 "}\n" }, 1147 "----------\n" + 1148 "1. WARNING in X.java (at line 3)\n" + 1149 " java.util.Map.Entry [] e = (java.util.Map<String, String>.@Marker Entry []) null;\n" + 1150 " ^^^^^^^^^^^^^^^^^^^\n" + 1151 "Map.Entry is a raw type. References to generic type Map.Entry<K,V> should be parameterized\n" + 1152 "----------\n" + 1153 "2. ERROR in X.java (at line 3)\n" + 1154 " java.util.Map.Entry [] e = (java.util.Map<String, String>.@Marker Entry []) null;\n" + 1155 " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 1156 "The member type Map.Entry<K,V> cannot be qualified with a parameterized type, since it is static. Remove arguments from qualifying type Map<String,String>\n" + 1157 "----------\n" + 1158 "3. ERROR in X.java (at line 3)\n" + 1159 " java.util.Map.Entry [] e = (java.util.Map<String, String>.@Marker Entry []) null;\n" + 1160 " ^^^^^^\n" + 1161 "Marker cannot be resolved to a type\n" + 1162 "----------\n"); 1163 } 1164 // ReferenceType1 ::= ClassOrInterface '<' TypeArgumentList2 test029()1165 public void test029() throws Exception { 1166 this.runNegativeTest( 1167 new String[] { 1168 "X.java", 1169 "import java.io.Serializable;\n" + 1170 "import java.util.List;\n" + 1171 "public class X<T extends Comparable<T> & Serializable> {\n" + 1172 " void foo(List<? extends @Marker Comparable<T>> p) {} \n" + 1173 "}\n" 1174 }, 1175 "----------\n" + 1176 "1. ERROR in X.java (at line 4)\n" + 1177 " void foo(List<? extends @Marker Comparable<T>> p) {} \n" + 1178 " ^^^^^^\n" + 1179 "Marker cannot be resolved to a type\n" + 1180 "----------\n"); 1181 } 1182 // ReferenceType2 ::= ClassOrInterface '<' TypeArgumentList3 test030()1183 public void test030() throws Exception { 1184 this.runNegativeTest( 1185 new String[] { 1186 "X.java", 1187 "class Base {\n" + 1188 "}\n" + 1189 "class Foo<U extends Base, V extends Bar<U, @Marker Foo<U, V>>> {\n" + 1190 "}\n" + 1191 "class Bar<E extends Base, F extends Foo<E, @Marker Bar<E, F>>> {\n" + 1192 "}\n" 1193 }, 1194 "----------\n" + 1195 "1. ERROR in X.java (at line 3)\n" + 1196 " class Foo<U extends Base, V extends Bar<U, @Marker Foo<U, V>>> {\n" + 1197 " ^^^^^^^^^^^\n" + 1198 "Bound mismatch: The type Foo<U,V> is not a valid substitute for the bounded parameter <F extends Foo<E,Bar<E,F>>> of the type Bar<E,F>\n" + 1199 "----------\n" + 1200 "2. ERROR in X.java (at line 3)\n" + 1201 " class Foo<U extends Base, V extends Bar<U, @Marker Foo<U, V>>> {\n" + 1202 " ^^^^^^\n" + 1203 "Marker cannot be resolved to a type\n" + 1204 "----------\n" + 1205 "3. ERROR in X.java (at line 5)\n" + 1206 " class Bar<E extends Base, F extends Foo<E, @Marker Bar<E, F>>> {\n" + 1207 " ^^^^^^^^^^^\n" + 1208 "Bound mismatch: The type Bar<E,F> is not a valid substitute for the bounded parameter <V extends Bar<U,Foo<U,V>>> of the type Foo<U,V>\n" + 1209 "----------\n" + 1210 "4. ERROR in X.java (at line 5)\n" + 1211 " class Bar<E extends Base, F extends Foo<E, @Marker Bar<E, F>>> {\n" + 1212 " ^^^^^^\n" + 1213 "Marker cannot be resolved to a type\n" + 1214 "----------\n"); 1215 } 1216 // ClassHeaderExtends ::= 'extends' ClassType test031()1217 public void test031() throws Exception { 1218 this.runNegativeTest( 1219 new String[] { 1220 "X.java", 1221 "public class X extends @Marker Object {\n" + 1222 "}\n" 1223 }, 1224 "----------\n" + 1225 "1. ERROR in X.java (at line 1)\n" + 1226 " public class X extends @Marker Object {\n" + 1227 " ^^^^^^\n" + 1228 "Marker cannot be resolved to a type\n" + 1229 "----------\n"); 1230 } 1231 // ClassInstanceCreationExpression ::= 'new' OnlyTypeArguments ClassType EnterInstanceCreationArgumentList '(' ArgumentListopt ')' UnqualifiedClassBodyopt 1232 // ClassInstanceCreationExpression ::= 'new' ClassType EnterInstanceCreationArgumentList '(' ArgumentListopt ')' UnqualifiedClassBodyopt test032()1233 public void test032() throws Exception { 1234 this.runNegativeTest( 1235 new String[] { 1236 "X.java", 1237 "public class X {\n" + 1238 " X x = new @Marker X();\n" + 1239 " X y = new <String> @Marker X();\n" + 1240 "}\n" 1241 }, 1242 "----------\n" + 1243 "1. ERROR in X.java (at line 2)\n" + 1244 " X x = new @Marker X();\n" + 1245 " ^^^^^^\n" + 1246 "Marker cannot be resolved to a type\n" + 1247 "----------\n" + 1248 "2. WARNING in X.java (at line 3)\n" + 1249 " X y = new <String> @Marker X();\n" + 1250 " ^^^^^^\n" + 1251 "Unused type arguments for the non generic constructor X() of type X; it should not be parameterized with arguments <String>\n" + 1252 "----------\n" + 1253 "3. ERROR in X.java (at line 3)\n" + 1254 " X y = new <String> @Marker X();\n" + 1255 " ^^^^^^\n" + 1256 "Marker cannot be resolved to a type\n" + 1257 "----------\n"); 1258 } 1259 // ClassInstanceCreationExpression ::= Primary '.' 'new' OnlyTypeArguments ClassType EnterInstanceCreationArgumentList '(' ArgumentListopt ')' QualifiedClassBodyopt 1260 // ClassInstanceCreationExpression ::= Primary '.' 'new' ClassType EnterInstanceCreationArgumentList '(' ArgumentListopt ')' QualifiedClassBodyopt test033()1261 public void test033() throws Exception { 1262 this.runNegativeTest( 1263 new String[] { 1264 "X.java", 1265 "public class X {\n" + 1266 " class Y {\n" + 1267 " }\n" + 1268 " Y y1 = new @Marker X().new @Marker Y();\n" + 1269 " Y y2 = new @Marker X().new <String> @Marker Y();\n" + 1270 "}\n" 1271 }, 1272 "----------\n" + 1273 "1. ERROR in X.java (at line 4)\n" + 1274 " Y y1 = new @Marker X().new @Marker Y();\n" + 1275 " ^^^^^^\n" + 1276 "Marker cannot be resolved to a type\n" + 1277 "----------\n" + 1278 "2. ERROR in X.java (at line 4)\n" + 1279 " Y y1 = new @Marker X().new @Marker Y();\n" + 1280 " ^^^^^^\n" + 1281 "Marker cannot be resolved to a type\n" + 1282 "----------\n" + 1283 "3. ERROR in X.java (at line 5)\n" + 1284 " Y y2 = new @Marker X().new <String> @Marker Y();\n" + 1285 " ^^^^^^\n" + 1286 "Marker cannot be resolved to a type\n" + 1287 "----------\n" + 1288 "4. WARNING in X.java (at line 5)\n" + 1289 " Y y2 = new @Marker X().new <String> @Marker Y();\n" + 1290 " ^^^^^^\n" + 1291 "Unused type arguments for the non generic constructor X.Y() of type X.Y; it should not be parameterized with arguments <String>\n" + 1292 "----------\n" + 1293 "5. ERROR in X.java (at line 5)\n" + 1294 " Y y2 = new @Marker X().new <String> @Marker Y();\n" + 1295 " ^^^^^^\n" + 1296 "Marker cannot be resolved to a type\n" + 1297 "----------\n"); 1298 } 1299 // ClassInstanceCreationExpression ::= ClassInstanceCreationExpressionName 'new' ClassType EnterInstanceCreationArgumentList '(' ArgumentListopt ')' QualifiedClassBodyopt 1300 // ClassInstanceCreationExpression ::= ClassInstanceCreationExpressionName 'new' OnlyTypeArguments ClassType EnterInstanceCreationArgumentList '(' ArgumentListopt ')' QualifiedClassBodyopt test034()1301 public void test034() throws Exception { 1302 this.runNegativeTest( 1303 new String[] { 1304 "X.java", 1305 "public class X {\n" + 1306 " X x;\n" + 1307 " class Y {\n" + 1308 " }\n" + 1309 " Y y1 = @Marker x.new @Marker Y();\n" + 1310 " Y y2 = @Marker x.new <String> @Marker Y();\n" + 1311 "}\n" 1312 }, 1313 "----------\n" + 1314 "1. ERROR in X.java (at line 5)\n" + 1315 " Y y1 = @Marker x.new @Marker Y();\n" + 1316 " ^^^^^^^\n" + 1317 "Syntax error, type annotations are illegal here\n" + 1318 "----------\n" + 1319 "2. ERROR in X.java (at line 5)\n" + 1320 " Y y1 = @Marker x.new @Marker Y();\n" + 1321 " ^^^^^^\n" + 1322 "Marker cannot be resolved to a type\n" + 1323 "----------\n" + 1324 "3. ERROR in X.java (at line 6)\n" + 1325 " Y y2 = @Marker x.new <String> @Marker Y();\n" + 1326 " ^^^^^^^\n" + 1327 "Syntax error, type annotations are illegal here\n" + 1328 "----------\n" + 1329 "4. WARNING in X.java (at line 6)\n" + 1330 " Y y2 = @Marker x.new <String> @Marker Y();\n" + 1331 " ^^^^^^\n" + 1332 "Unused type arguments for the non generic constructor X.Y() of type X.Y; it should not be parameterized with arguments <String>\n" + 1333 "----------\n" + 1334 "5. ERROR in X.java (at line 6)\n" + 1335 " Y y2 = @Marker x.new <String> @Marker Y();\n" + 1336 " ^^^^^^\n" + 1337 "Marker cannot be resolved to a type\n" + 1338 "----------\n"); 1339 } 1340 // MethodHeaderThrowsClause ::= 'throws' ClassTypeList 1341 // ClassTypeList -> ClassTypeElt 1342 // ClassTypeList ::= ClassTypeList ',' ClassTypeElt 1343 // ClassTypeElt ::= ClassType test035()1344 public void test035() throws Exception { 1345 this.runNegativeTest( 1346 new String[] { 1347 "X.java", 1348 "public class X {\n" + 1349 " void foo() throws @Marker NullPointerException, @Marker ArrayIndexOutOfBoundsException {}\n" + 1350 "}\n" 1351 }, 1352 "----------\n" + 1353 "1. ERROR in X.java (at line 2)\n" + 1354 " void foo() throws @Marker NullPointerException, @Marker ArrayIndexOutOfBoundsException {}\n" + 1355 " ^^^^^^\n" + 1356 "Marker cannot be resolved to a type\n" + 1357 "----------\n" + 1358 "2. ERROR in X.java (at line 2)\n" + 1359 " void foo() throws @Marker NullPointerException, @Marker ArrayIndexOutOfBoundsException {}\n" + 1360 " ^^^^^^\n" + 1361 "Marker cannot be resolved to a type\n" + 1362 "----------\n"); 1363 } 1364 // ClassHeaderImplements ::= 'implements' InterfaceTypeList 1365 // InterfaceHeaderExtends ::= 'extends' InterfaceTypeList 1366 // InterfaceTypeList -> InterfaceType 1367 // InterfaceTypeList ::= InterfaceTypeList ',' InterfaceType 1368 // InterfaceType ::= ClassOrInterfaceType test036()1369 public void test036() throws Exception { 1370 this.runNegativeTest( 1371 new String[] { 1372 "X.java", 1373 "interface I {}\n" + 1374 "interface J {}\n" + 1375 "interface K extends @Marker I, @Marker J {}\n" + 1376 "interface L {}\n" + 1377 "public class X implements @Marker K, @Marker L {\n" + 1378 "}\n" 1379 }, 1380 "----------\n" + 1381 "1. ERROR in X.java (at line 3)\n" + 1382 " interface K extends @Marker I, @Marker J {}\n" + 1383 " ^^^^^^\n" + 1384 "Marker cannot be resolved to a type\n" + 1385 "----------\n" + 1386 "2. ERROR in X.java (at line 3)\n" + 1387 " interface K extends @Marker I, @Marker J {}\n" + 1388 " ^^^^^^\n" + 1389 "Marker cannot be resolved to a type\n" + 1390 "----------\n" + 1391 "3. ERROR in X.java (at line 5)\n" + 1392 " public class X implements @Marker K, @Marker L {\n" + 1393 " ^^^^^^\n" + 1394 "Marker cannot be resolved to a type\n" + 1395 "----------\n" + 1396 "4. ERROR in X.java (at line 5)\n" + 1397 " public class X implements @Marker K, @Marker L {\n" + 1398 " ^^^^^^\n" + 1399 "Marker cannot be resolved to a type\n" + 1400 "----------\n"); 1401 } 1402 // ReferenceExpression ::= Name Dimsopt '::' NonWildTypeArgumentsopt IdentifierOrNew test037()1403 public void test037() throws Exception { 1404 this.runNegativeTest( 1405 new String[] { 1406 "X.java", 1407 "interface I {\n" + 1408 " void foo(int x);\n" + 1409 "}\n" + 1410 "public class X {\n" + 1411 " public static void main(String [] args) {\n" + 1412 " I i = @Marker Y. @Marker Z @Marker [] [] @Marker [] ::foo;\n" + 1413 " i.foo(10); \n" + 1414 " Zork z;\n" + 1415 " }\n" + 1416 "}\n" + 1417 "class Y {\n" + 1418 " static class Z {\n" + 1419 " public static void foo(int x) {\n" + 1420 " System.out.println(x);\n" + 1421 " }\n" + 1422 " }\n" + 1423 "}\n" 1424 }, 1425 "----------\n" + 1426 "1. ERROR in X.java (at line 6)\n" + 1427 " I i = @Marker Y. @Marker Z @Marker [] [] @Marker [] ::foo;\n" + 1428 " ^^^^^^^\n" + 1429 "Type annotations are not allowed on type names used to access static members\n" + 1430 "----------\n" + 1431 "2. ERROR in X.java (at line 6)\n" + 1432 " I i = @Marker Y. @Marker Z @Marker [] [] @Marker [] ::foo;\n" + 1433 " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 1434 "The type Y.Z[][][] does not define foo(int) that is applicable here\n" + 1435 "----------\n" + 1436 "3. ERROR in X.java (at line 6)\n" + 1437 " I i = @Marker Y. @Marker Z @Marker [] [] @Marker [] ::foo;\n" + 1438 " ^^^^^^\n" + 1439 "Marker cannot be resolved to a type\n" + 1440 "----------\n" + 1441 "4. ERROR in X.java (at line 6)\n" + 1442 " I i = @Marker Y. @Marker Z @Marker [] [] @Marker [] ::foo;\n" + 1443 " ^^^^^^\n" + 1444 "Marker cannot be resolved to a type\n" + 1445 "----------\n" + 1446 "5. ERROR in X.java (at line 6)\n" + 1447 " I i = @Marker Y. @Marker Z @Marker [] [] @Marker [] ::foo;\n" + 1448 " ^^^^^^\n" + 1449 "Marker cannot be resolved to a type\n" + 1450 "----------\n" + 1451 "6. ERROR in X.java (at line 6)\n" + 1452 " I i = @Marker Y. @Marker Z @Marker [] [] @Marker [] ::foo;\n" + 1453 " ^^^^^^\n" + 1454 "Marker cannot be resolved to a type\n" + 1455 "----------\n" + 1456 "7. ERROR in X.java (at line 8)\n" + 1457 " Zork z;\n" + 1458 " ^^^^\n" + 1459 "Zork cannot be resolved to a type\n" + 1460 "----------\n"); 1461 } 1462 // ReferenceExpression ::= Name BeginTypeArguments ReferenceExpressionTypeArgumentsAndTrunk '::' NonWildTypeArgumentsopt IdentifierOrNew test038()1463 public void test038() throws Exception { 1464 this.runNegativeTest( 1465 new String[] { 1466 "X.java", 1467 "interface I {\n" + 1468 " Y foo(int x);\n" + 1469 "}\n" + 1470 "public class X {\n" + 1471 " class Z extends Y {\n" + 1472 " public Z(int x) {\n" + 1473 " super(x);\n" + 1474 " System.out.println();\n" + 1475 " }\n" + 1476 " }\n" + 1477 " public static void main(String [] args) {\n" + 1478 " i = @Marker W<@Marker Integer>::<@Marker String> new;\n" + 1479 " }\n" + 1480 "}\n" + 1481 "class W<T> extends Y {\n" + 1482 " public W(T x) {\n" + 1483 " super(0);\n" + 1484 " System.out.println(x);\n" + 1485 " }\n" + 1486 "}\n" + 1487 "class Y {\n" + 1488 " public Y(int x) {\n" + 1489 " System.out.println(x);\n" + 1490 " }\n" + 1491 "}\n" 1492 1493 1494 }, 1495 "----------\n" + 1496 "1. ERROR in X.java (at line 12)\n" + 1497 " i = @Marker W<@Marker Integer>::<@Marker String> new;\n" + 1498 " ^\n" + 1499 "i cannot be resolved to a variable\n" + 1500 "----------\n" + 1501 "2. ERROR in X.java (at line 12)\n" + 1502 " i = @Marker W<@Marker Integer>::<@Marker String> new;\n" + 1503 " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 1504 "The target type of this expression must be a functional interface\n" + 1505 "----------\n" + 1506 "3. ERROR in X.java (at line 12)\n" + 1507 " i = @Marker W<@Marker Integer>::<@Marker String> new;\n" + 1508 " ^^^^^^\n" + 1509 "Marker cannot be resolved to a type\n" + 1510 "----------\n" + 1511 "4. ERROR in X.java (at line 12)\n" + 1512 " i = @Marker W<@Marker Integer>::<@Marker String> new;\n" + 1513 " ^^^^^^\n" + 1514 "Marker cannot be resolved to a type\n" + 1515 "----------\n" + 1516 "5. ERROR in X.java (at line 12)\n" + 1517 " i = @Marker W<@Marker Integer>::<@Marker String> new;\n" + 1518 " ^^^^^^\n" + 1519 "Marker cannot be resolved to a type\n" + 1520 "----------\n"); 1521 } 1522 // CastExpression ::= PushLPAREN Name PushRPAREN InsideCastExpressionLL1 UnaryExpressionNotPlusMinus 1523 // CastExpression ::= PushLPAREN Name Dims PushRPAREN InsideCastExpression UnaryExpressionNotPlusMinus 1524 // CastExpression ::= PushLPAREN Name OnlyTypeArgumentsForCastExpression Dimsopt PushRPAREN InsideCastExpression UnaryExpressionNotPlusMinus 1525 // CastExpression ::= PushLPAREN Name OnlyTypeArgumentsForCastExpression '.' ClassOrInterfaceType Dimsopt PushRPAREN InsideCastExpressionWithQualifiedGenerics UnaryExpressionNotPlusMinus test039()1526 public void test039() throws Exception { 1527 this.runNegativeTest( 1528 new String[] { 1529 "X.java", 1530 "public class X {\n" + 1531 " Object o = (@Marker X) null;\n" + 1532 " Object p = (@Marker X @Marker []) null;\n" + 1533 " Object q = (@Marker java. @Marker util. @Marker List<@Marker String> []) null;\n" + 1534 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1535 "}\n" 1536 }, 1537 "----------\n" + 1538 "1. ERROR in X.java (at line 2)\n" + 1539 " Object o = (@Marker X) null;\n" + 1540 " ^^^^^^\n" + 1541 "Marker cannot be resolved to a type\n" + 1542 "----------\n" + 1543 "2. ERROR in X.java (at line 3)\n" + 1544 " Object p = (@Marker X @Marker []) null;\n" + 1545 " ^^^^^^\n" + 1546 "Marker cannot be resolved to a type\n" + 1547 "----------\n" + 1548 "3. ERROR in X.java (at line 3)\n" + 1549 " Object p = (@Marker X @Marker []) null;\n" + 1550 " ^^^^^^\n" + 1551 "Marker cannot be resolved to a type\n" + 1552 "----------\n" + 1553 "4. ERROR in X.java (at line 4)\n" + 1554 " Object q = (@Marker java. @Marker util. @Marker List<@Marker String> []) null;\n" + 1555 " ^^^^^^^\n" + 1556 "Illegally placed annotation: type annotations must directly precede the simple name of the type they are meant to affect (or the [] for arrays)\n" + 1557 "----------\n" + 1558 "5. ERROR in X.java (at line 4)\n" + 1559 " Object q = (@Marker java. @Marker util. @Marker List<@Marker String> []) null;\n" + 1560 " ^^^^^^\n" + 1561 "Marker cannot be resolved to a type\n" + 1562 "----------\n" + 1563 "6. ERROR in X.java (at line 4)\n" + 1564 " Object q = (@Marker java. @Marker util. @Marker List<@Marker String> []) null;\n" + 1565 " ^^^^^^^\n" + 1566 "Syntax error, type annotations are illegal here\n" + 1567 "----------\n" + 1568 "7. ERROR in X.java (at line 4)\n" + 1569 " Object q = (@Marker java. @Marker util. @Marker List<@Marker String> []) null;\n" + 1570 " ^^^^^^\n" + 1571 "Marker cannot be resolved to a type\n" + 1572 "----------\n" + 1573 "8. ERROR in X.java (at line 4)\n" + 1574 " Object q = (@Marker java. @Marker util. @Marker List<@Marker String> []) null;\n" + 1575 " ^^^^^^\n" + 1576 "Marker cannot be resolved to a type\n" + 1577 "----------\n" + 1578 "9. ERROR in X.java (at line 5)\n" + 1579 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1580 " ^^^^^^^\n" + 1581 "Illegally placed annotation: type annotations must directly precede the simple name of the type they are meant to affect (or the [] for arrays)\n" + 1582 "----------\n" + 1583 "10. ERROR in X.java (at line 5)\n" + 1584 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1585 " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 1586 "The member type Map.Entry<K,V> cannot be qualified with a parameterized type, since it is static. Remove arguments from qualifying type Map<String,String>\n" + 1587 "----------\n" + 1588 "11. ERROR in X.java (at line 5)\n" + 1589 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1590 " ^^^^^^\n" + 1591 "Marker cannot be resolved to a type\n" + 1592 "----------\n" + 1593 "12. ERROR in X.java (at line 5)\n" + 1594 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1595 " ^^^^^^^\n" + 1596 "Syntax error, type annotations are illegal here\n" + 1597 "----------\n" + 1598 "13. ERROR in X.java (at line 5)\n" + 1599 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1600 " ^^^^^^^\n" + 1601 "Type annotations are not allowed on type names used to access static members\n" + 1602 "----------\n" + 1603 "14. ERROR in X.java (at line 5)\n" + 1604 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1605 " ^^^^^^\n" + 1606 "Marker cannot be resolved to a type\n" + 1607 "----------\n" + 1608 "15. ERROR in X.java (at line 5)\n" + 1609 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1610 " ^^^^^^\n" + 1611 "Marker cannot be resolved to a type\n" + 1612 "----------\n" + 1613 "16. ERROR in X.java (at line 5)\n" + 1614 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1615 " ^^^^^^\n" + 1616 "Marker cannot be resolved to a type\n" + 1617 "----------\n" + 1618 "17. ERROR in X.java (at line 5)\n" + 1619 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1620 " ^^^^^^\n" + 1621 "Marker cannot be resolved to a type\n" + 1622 "----------\n" + 1623 "18. ERROR in X.java (at line 5)\n" + 1624 " Object r = (@Marker java. @Marker util.@Marker Map<@Marker String, @Marker String>.@Marker Entry @Marker []) null;\n" + 1625 " ^^^^^^\n" + 1626 "Marker cannot be resolved to a type\n" + 1627 "----------\n"); 1628 } 1629 } 1630