--- /dev/null
+public aspect AJ5FeaturesAtJ14 {
+
+ pointcut p1() : @annotation(Foo);
+
+ pointcut p2() : @this(Foo);
+
+ pointcut p3() : @target(Foo);
+
+ pointcut p4() : @args(Foo);
+
+ pointcut p5() : @within(Foo);
+
+ pointcut p6() : @withincode(Foo);
+
+ declare @type : Bar : @Foo;
+
+ declare @method : * *.main() : @Foo;
+
+ declare @field : * main : @Foo;
+
+ declare @constructor : Bar.new(..) : @Foo;
+
+ // annotations within type and signature patterns...
+
+ pointcut p7() : execution(@Foo * *(..));
+
+ declare parents : (@Foo *) extends Bar;
+}
+
+class Foo {}
+
+class Bar {}
\ No newline at end of file
</compile>
</ajc-test>
+ <ajc-test dir="java5/compliance" title="java 5 pointcuts and declares at pre-java 5 compliance levels">
+ <compile files="AJ5FeaturesAtJ14.aj" options="-1.4">
+ <message kind="error" line="3" text="the @annotation pointcut expression is only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="11" text="the @within pointcut expression is only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="13" text="the @withincode pointcut expression is only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="5" text="the @this pointcut expression is only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="7" text="the @target pointcut expression is only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="9" text="the @args pointcut expression is only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="15" text="declare @type is only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="15" text="annotations are only available if source level is 5.0"/>
+ <message kind="error" line="15" text="cannot convert from Foo to Annotation"/>
+ <message kind="error" line="17" text="declare @method is only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="17" text="annotations are only available if source level is 5.0"/>
+ <message kind="error" line="17" text="cannot convert from Foo to Annotation"/>
+ <message kind="error" line="19" text="declare @field is only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="19" text="annotations are only available if source level is 5.0"/>
+ <message kind="error" line="19" text="cannot convert from Foo to Annotation"/>
+ <message kind="error" line="21" text="declare @constructor is only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="21" text="annotations are only available if source level is 5.0"/>
+ <message kind="error" line="21" text="cannot convert from Foo to Annotation"/>
+ <message kind="error" line="25" text="annotation type patterns are only supported at Java 5 compliance level or above"/>
+ <message kind="error" line="27" text="annotation type patterns are only supported at Java 5 compliance level or above"/>
+ </compile>
+ </ajc-test>
+
<ajc-test dir="bugs150/pr86903" title="bcelrenderer bad">
<compile files="GenericService.java,Service.java,Main.java,BadWormhole.java"/>
<run class="Main"/>