1/** 2 * @test /nodynamiccopyright/ 3 * @bug 8022765 4 * @summary javac should not crash for incorrect attribute values 5 * @modules jdk.compiler/com.sun.tools.javac.api 6 * jdk.compiler/com.sun.tools.javac.file 7 * @build VerifyAnnotationsAttributed 8 * @run main VerifyAnnotationsAttributed T8022765.java 9 * @compile/fail/ref=T8022765.out -XDrawDiagnostics T8022765.java 10 */ 11@Ann(@Override) 12@Primitive(@Override) 13@Str(@Override) 14@En(@Override) 15@ArrAnn(@Override) 16@ArrPrimitive(@Override) 17@ArrStr(@Override) 18@ArrEn(@Override) 19class AnnC { } 20 21class PrimitiveC { 22 private static final int C = 1; 23 @Ann(C) 24 @Primitive(C) 25 @Str(C) 26 @En(C) 27 @ArrAnn(C) 28 @ArrPrimitive(C) 29 @ArrStr(C) 30 @ArrEn(C) 31 class I { 32 } 33} 34 35class StringC { 36 37 private static final String C = ""; 38 39 @Ann(C) 40 @Primitive(C) 41 @Str(C) 42 @En(C) 43 @ArrAnn(C) 44 @ArrPrimitive(C) 45 @ArrStr(C) 46 @ArrEn(C) 47 class I { 48 } 49} 50 51@Ann(E.A) 52@Primitive(E.A) 53@Str(E.A) 54@En(E.A) 55@ArrAnn(E.A) 56@ArrPrimitive(E.A) 57@ArrStr(E.A) 58@ArrEn(E.A) 59class EnC { } 60 61@Ann({@Override}) 62@Primitive({@Override}) 63@Str({@Override}) 64@En({@Override}) 65@ArrAnn({@Override}) 66@ArrPrimitive({@Override}) 67@ArrStr({@Override}) 68@ArrEn({@Override}) 69class ArrAnnC { } 70 71class ArrPrimitiveC { 72 private static final int C = 1; 73 @Ann({C}) 74 @Primitive({C}) 75 @Str({C}) 76 @En({C}) 77 @ArrAnn({C}) 78 @ArrPrimitive({C}) 79 @ArrStr({C}) 80 @ArrEn({C}) 81 class I { 82 } 83} 84 85class ArrStringC { 86 private static final String C = ""; 87 @Ann({C}) 88 @Primitive({C}) 89 @Str({C}) 90 @En({C}) 91 @ArrAnn({C}) 92 @ArrPrimitive({C}) 93 @ArrStr({C}) 94 @ArrEn({C}) 95 class I { 96 } 97} 98 99@Ann({E.A}) 100@Primitive({E.A}) 101@Str({E.A}) 102@En({E.A}) 103@ArrAnn({E.A}) 104@ArrPrimitive({E.A}) 105@ArrStr({E.A}) 106@ArrEn({E.A}) 107class ArrEnC { } 108 109@interface Ann { 110 Override value(); 111} 112 113@interface Primitive { 114 int value(); 115} 116 117@interface Str { 118 String value(); 119} 120 121@interface En { 122 E value(); 123} 124 125@interface ArrAnn { 126 Override[] value(); 127} 128 129@interface ArrPrimitive { 130 int[] value(); 131} 132 133@interface ArrStr { 134 String[] value(); 135} 136 137@interface ArrEn { 138 E[] value(); 139} 140 141enum E { 142 A; 143} 144