langtools/test/tools/javac/annotations/neg/8022765/ErroneousAnnotations.java
author jlahoda
Fri, 10 Jan 2014 11:31:09 +0100
changeset 22439 4785d87cd2d6
permissions -rw-r--r--
8029376: Full attribution of unresolvable annotations 8029161: javac crashing when processing broken annotations Summary: Attributing values of annotation attributes regardless how broken the annotation is. Reviewed-by: jjg, jfranck

/**
 * @test /nodynamiccopyright/
 * @bug 8029376
 * @summary Verify reasonable errors for erroneous annotations, and incorrectly used types
 * @compile/fail/ref=ErroneousAnnotations.out -XDrawDiagnostics ErroneousAnnotations.java
 */
class ErroneousAnnotations {
    @Undefined //no "is not an annotation type error"
    private int f1;
    @String //produce "is not an annotation type error"
    private int f2;
    @Annot(@Undefined)
    private int f3;
    @Annot(@String)
    private int f4;
    @Primitive(@Undefined)
    private int f5;
    @Primitive(@String)
    private int f6;
    @PrimitiveWrap(@PrimitiveImpl)
    private int f7;

    @interface Annot {
        Undefined value();
    }

    @interface PrimitiveWrap {
        Primitive value();
    }

    @interface Primitive {
        int value();
    }

    interface PrimitiveImpl extends Primitive {
    }
}