--- /dev/null
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Anno {
+ String foo();
+}
+
+@Anno(foo="anc")
+aspect X {
+
+ //declare @method: int i: -@Anno;
+ declare @method: int i(..): -@Anno;
+ declare @type: X: -@Anno;
+ declare @field: int i: -@Anno(foo="abc");
+
+ public static void main(String[] args) throws Exception {
+ if (X.class.getDeclaredField("i").getAnnotation(Anno.class)==null) {
+ System.out.println("not there");
+ } else {
+ System.out.println("failed");
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Anno {
+ String foo();
+}
+
+public aspect WithValues {
+ @Anno(foo="anc")
+ int i;
+
+ declare @field: int i: -@Anno;
+
+ public static void main(String[] args) throws Exception {
+ if (WithValues.class.getDeclaredField("i").getAnnotation(Anno.class)==null) {
+ System.out.println("not there");
+ } else {
+ System.out.println("failed");
+ }
+ }
+}
\ No newline at end of file
runTest("declare minus - multifiles - 3");
}
+ public void testDeclareMinusWithValues() {
+ runTest("declare minus - with values");
+ }
+
+ public void testDeclareMinusUnsupported() {
+ runTest("declare minus - unsupported");
+ }
+
public void testBinaryWeaving() {
runTest("binary weaving");
}
</stdout></run>
</ajc-test>
+ <ajc-test dir="features1611/declareMinus" title="declare minus - with values">
+ <compile files="WithValues.java" options="-1.5"/>
+ <run class="WithValues">
+ <stdout>
+ <line text="not there"/>
+ </stdout></run>
+ </ajc-test>
+
+ <ajc-test dir="features1611/declareMinus" title="declare minus - unsupported">
+ <compile files="Unsupported.java" options="-1.5">
+ <message kind="error" line="13" text="Annotation removal only supported for declare @field (compiler limitation)"/>
+ <message kind="error" line="14" text="Annotation removal only supported for declare @field (compiler limitation)"/>
+ <message kind="error" line="15" text="Annotation removal does not allow values to be specified for the annotation (compiler limitation)"/>
+ </compile>
+ </ajc-test>
+
<ajc-test dir="features1611/declareMinus" title="binary weaving">
<compile files="aspectjtest/AnnotationA.java aspectjtest/AnnotationB.java aspectjtest/MyEntity.java aspectjtest/HelloTest.java" outjar="code.jar" options="-1.5"/>
<compile files="aspectjtest/ExampleItd.aj" inpath="code.jar" options="-1.5 -showWeaveInfo">