/** * @test /nodynamiccopyright/ * @bug 8022765 * @summary javac should not crash for incorrect attribute values * @modules jdk.compiler/com.sun.tools.javac.api * jdk.compiler/com.sun.tools.javac.file * @build VerifyAnnotationsAttributed * @run main VerifyAnnotationsAttributed T8022765.java * @compile/fail/ref=T8022765.out -XDrawDiagnostics T8022765.java */ @Ann(@Override) @Primitive(@Override) @Str(@Override) @En(@Override) @ArrAnn(@Override) @ArrPrimitive(@Override) @ArrStr(@Override) @ArrEn(@Override) class AnnC { } class PrimitiveC { private static final int C = 1; @Ann(C) @Primitive(C) @Str(C) @En(C) @ArrAnn(C) @ArrPrimitive(C) @ArrStr(C) @ArrEn(C) class I { } } class StringC { private static final String C = ""; @Ann(C) @Primitive(C) @Str(C) @En(C) @ArrAnn(C) @ArrPrimitive(C) @ArrStr(C) @ArrEn(C) class I { } } @Ann(E.A) @Primitive(E.A) @Str(E.A) @En(E.A) @ArrAnn(E.A) @ArrPrimitive(E.A) @ArrStr(E.A) @ArrEn(E.A) class EnC { } @Ann({@Override}) @Primitive({@Override}) @Str({@Override}) @En({@Override}) @ArrAnn({@Override}) @ArrPrimitive({@Override}) @ArrStr({@Override}) @ArrEn({@Override}) class ArrAnnC { } class ArrPrimitiveC { private static final int C = 1; @Ann({C}) @Primitive({C}) @Str({C}) @En({C}) @ArrAnn({C}) @ArrPrimitive({C}) @ArrStr({C}) @ArrEn({C}) class I { } } class ArrStringC { private static final String C = ""; @Ann({C}) @Primitive({C}) @Str({C}) @En({C}) @ArrAnn({C}) @ArrPrimitive({C}) @ArrStr({C}) @ArrEn({C}) class I { } } @Ann({E.A}) @Primitive({E.A}) @Str({E.A}) @En({E.A}) @ArrAnn({E.A}) @ArrPrimitive({E.A}) @ArrStr({E.A}) @ArrEn({E.A}) class ArrEnC { } @interface Ann { Override value(); } @interface Primitive { int value(); } @interface Str { String value(); } @interface En { E value(); } @interface ArrAnn { Override[] value(); } @interface ArrPrimitive { int[] value(); } @interface ArrStr { String[] value(); } @interface ArrEn { E[] value(); } enum E { A; }