/* * @test * @summary Test that inherited declaration annotations are stored in bytecode. * * @compile -source 7 -target 7 ../PersistUtil.java Driver.java ReferenceInfoUtil.java Implements.java AbstractClass.java * @run main Driver Implements */ import static com.sun.tools.classfile.TypeAnnotation.TargetType.*; public class Implements { @ADescriptions({ @ADescription(annotation = "org/checkerframework/checker/nullness/qual/EnsuresNonNull") }) public String m1() { StringBuilder sb = new StringBuilder(); sb.append("public Test() {f = new Object();}\n"); sb.append("@Override public void setf() {f = new Object();}\n"); sb.append("@Override public void setg() {}\n"); return TestWrapper.wrap(sb.toString()); } } class TestWrapper { public static String wrap(String method) { StringBuilder sb = new StringBuilder(); sb.append("class Test extends AbstractClass {\n"); sb.append(method); sb.append("}"); return sb.toString(); } }