| /* @test /nodynamiccopyright/ |
| * @bug 8182747 |
| * @summary javac crashes on bad annotation value |
| * @compile/fail/ref=BadAnnotationRegressionTest.out -XDrawDiagnostics BadAnnotationRegressionTest.java |
| */ |
| |
| class BadAnnotationRegressionTest { |
| @interface ClassAnno { |
| Class<?> value(); |
| } |
| |
| @interface ArrayAnno { |
| int[] value(); |
| } |
| |
| @interface PrimitiveAnno { |
| int value(); |
| } |
| |
| @interface StringAnno { |
| String value(); |
| } |
| |
| enum E { |
| A, |
| B, |
| } |
| |
| @interface EnumAnno { |
| E value(); |
| } |
| |
| static final Class<?> c = Object.class; |
| static final int i = 0; |
| static final int[] arr = new int[] { 1, 2, 3 }; |
| static final E a = E.A; |
| static final String s = ""; |
| |
| @ClassAnno(c) // error |
| @PrimitiveAnno(i) // ok |
| @ArrayAnno(arr) // error |
| @EnumAnno(a) // error |
| @StringAnno(s) //ok |
| void testAnno() {} |
| } |