]> source.dussan.org Git - aspectj.git/commitdiff
tests for 103741 - use of java 5 specific language features now policed at < 1.5...
authoracolyer <acolyer>
Fri, 4 Nov 2005 09:04:58 +0000 (09:04 +0000)
committeracolyer <acolyer>
Fri, 4 Nov 2005 09:04:58 +0000 (09:04 +0000)
tests/java5/compliance/AJ5FeaturesAtJ14.aj [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
tests/src/org/aspectj/systemtest/ajc150/ajc150.xml

diff --git a/tests/java5/compliance/AJ5FeaturesAtJ14.aj b/tests/java5/compliance/AJ5FeaturesAtJ14.aj
new file mode 100644 (file)
index 0000000..bc344f8
--- /dev/null
@@ -0,0 +1,32 @@
+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
index af3de41212d89891c34284104f62bce010cdae1d..92b29d6b804bac9ce2adb82e24e743617a2e97b4 100644 (file)
@@ -659,6 +659,10 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
          runTest("ITDC with no explicit cons call");
   }
   
+  public void testJava5SpecificFeaturesUsedAtJava14OrLower() {
+         runTest("java 5 pointcuts and declares at pre-java 5 compliance levels");
+  }
+  
   // helper methods.....
   
   public SyntheticRepository createRepos(File cpentry) {
index 42b96499c7a6f9c245f75eb15d923fbadac63722..4316e6ec87becdacbc488e399a31a7539e737e95 100644 (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"/>