]> source.dussan.org Git - aspectj.git/commitdiff
rest of fix for 228980 - annotations bundled in with Nots
authoraclement <aclement>
Sat, 26 Apr 2008 18:38:31 +0000 (18:38 +0000)
committeraclement <aclement>
Sat, 26 Apr 2008 18:38:31 +0000 (18:38 +0000)
tests/features160/parameterAnnotationMatching/Test.java
tests/features160/parameterAnnotationMatching/Test2.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc160/ParameterAnnotationMatchingTests.java
tests/src/org/aspectj/systemtest/ajc160/parameterAnnotations.xml

index 2a5aa2480ac400f223ccb82c5b247b704b686073..fb46dbfb0e6d390eb79231519310fb4201b29ae7 100644 (file)
@@ -8,7 +8,7 @@ public aspect Test {
     declare warning : execution(* *(!(Object+), ..)) : "mOne: value parameter";
    
     // Wrong (matches f1 and f2, should match only f1):  a Not type pattern containing @A and negatedPattern Object+ is built
-//broke    declare warning : execution(* *(@A (!(Object+)), ..)) : "mTwo: @A annotated value parameter";
+    declare warning : execution(* *(@A (!(Object+)), ..)) : "mTwo: @A annotated value parameter";
    
     // OK (matches f1):
     declare warning : execution(* *(@A (*), ..)) && execution(* *(!(Object+), ..)): "mThree: @A annotated value parameter.";
@@ -23,7 +23,7 @@ public aspect Test {
     declare warning : execution(* *(@A (*), ..)) && execution(* *(Object+, ..)): "mSix: @A annotated reference parameter.";
    
     // Wrong (matches f1 and f2, should match only f2):
-//broke     declare warning : execution(* *(!@A (!(Object+)), ..)) : "mSeven: Non-@A annotated value parameter!";
+     declare warning : execution(* *(!@A (!(Object+)), ..)) : "mSeven: Non-@A annotated value parameter!";
    
     // Wrong (matches f1 and f2, should match only f2):
     declare warning : execution(* *(!@A (*), ..)) && execution(* *(!(Object+), ..)): "mEight: Non-@A annotated value parameter.";
diff --git a/tests/features160/parameterAnnotationMatching/Test2.java b/tests/features160/parameterAnnotationMatching/Test2.java
new file mode 100644 (file)
index 0000000..13fd815
--- /dev/null
@@ -0,0 +1,25 @@
+ import java.lang.annotation.*;
+ import java.lang.annotation.Target;
+
+ public aspect Test2 {
+
+     declare warning : execution(* *(@A (!(Object+)), ..)) : "mOne"; // f1
+     declare warning : execution(* *(@A !String, ..)) : "mTwo"; // f3/f4
+     
+     void f1(@A int i) {} // 9 
+
+     void f2(int i) {} // 11
+
+     void f3(@A P i) {}
+
+     void f4(P i) {}
+
+     void f5(Integer i) {}
+     
+     void f6(@A Integer i) {}
+
+     @Retention(RetentionPolicy.RUNTIME)
+     private static @interface A { }
+
+     @A static class P {}
+ }
\ No newline at end of file
index 4e66778794a6d3e9f4b2c2ef05593d6334163b11..166ad09eba7263d1847de226c6fc992aff897b54 100644 (file)
@@ -77,6 +77,7 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
 public class ParameterAnnotationMatchingTests extends XMLBasedAjcTestCase {
        
     public void testDeow() { runTest("deow"); }
+    public void testDeow2() { runTest("deow2"); }
        public void testNoWarningForWrongType() { runTest("no xlint for wrong target");}
        public void testVariousCombinations() { runTest("various combinations"); }
        public void testVariousCombinationsCtors() { runTest("various combinations - ctors"); }
index 47d8598b3c9bf7e5dde3fff4ea4adf01a5bc8599..1f06e2d8246d93727a631c4b4ab095c9e0211e24 100644 (file)
@@ -3,25 +3,30 @@
 <!-- AspectJ v1.6.0 Parameter Annotation Matching Tests -->
 <suite>
 
+   <ajc-test dir="features160/parameterAnnotationMatching" title="deow2">
+     <compile options="-1.5" files="Test2.java">
+       <message kind="warning" line="9" text="mOne"/>
+       <message kind="warning" line="13" text="mTwo"/>
+       <message kind="warning" line="15" text="mTwo"/>
+     </compile>
+   </ajc-test>
 
    <ajc-test dir="features160/parameterAnnotationMatching" title="deow">
      <compile options="-1.5" files="Test.java">
        <message kind="warning" line="43" text="mOne"/>
        <message kind="warning" line="45" text="mOne"/>
+       <message kind="warning" line="43" text="mTwo"/>
        <message kind="warning" line="43" text="mThree"/> 
        <message kind="warning" line="47" text="mFour"/> 
        <message kind="warning" line="49" text="mFour"/> 
        <message kind="warning" line="47" text="mFive"/> 
        <message kind="warning" line="47" text="mSix"/> 
+       <message kind="warning" line="45" text="mSeven"/>
+       <message kind="warning" line="45" text="mEight"/>  
        <message kind="warning" line="45" text="mNine"/> 
+       <message kind="warning" line="49" text="mTen"/> 
        <message kind="warning" line="49" text="mEleven"/> 
        <message kind="warning" line="49" text="mTwelve"/>
-       <message kind="warning" line="49" text="mTen"/> 
-       <message kind="warning" line="45" text="mEight"/>  
-       <!--
-       <message kind="warning" line="43" text="mTwo"/>
-       <message kind="warning" line="45" text="mSeven"/>
-       -->
      </compile>
    </ajc-test>