b6262441ad
Reviewed-by: jjg, shurailine
144 lines
2.1 KiB
Java
144 lines
2.1 KiB
Java
/**
|
|
* @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;
|
|
}
|