]> source.dussan.org Git - aspectj.git/commitdiff
345172
authoraclement <aclement>
Mon, 9 May 2011 22:41:18 +0000 (22:41 +0000)
committeraclement <aclement>
Mon, 9 May 2011 22:41:18 +0000 (22:41 +0000)
tests/bugs1612/pr345172/InterType.java [new file with mode: 0644]
tests/bugs1612/pr345172/InterType2.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java
tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml

diff --git a/tests/bugs1612/pr345172/InterType.java b/tests/bugs1612/pr345172/InterType.java
new file mode 100644 (file)
index 0000000..a8f808d
--- /dev/null
@@ -0,0 +1,37 @@
+import static java.lang.annotation.ElementType.*;
+import java.lang.annotation.*;
+
+public aspect InterType {
+
+  @Retention(RetentionPolicy.RUNTIME)
+  @Target({METHOD})
+  public @interface MyAnnotation {
+  }
+
+  public static aspect AroundMethod {
+    Object around() : execution(@MyAnnotation * * (..)) {
+      return proceed();
+    }   
+  }
+
+  public interface InterTypeIfc {}
+
+  // (1)
+  @MyAnnotation
+  public void InterTypeIfc.m1(int p1) {}
+
+  // (2)
+  public void InterTypeIfc.m1(int p1, int p2) {}
+
+  // (3)
+//  @MyAnnotation
+//  public void m1(int p1) {}
+
+  // (4)
+//  public void m1(int p1, int p2) {}
+
+
+  public static void main(String []argv) throws Exception {
+  }
+}
diff --git a/tests/bugs1612/pr345172/InterType2.java b/tests/bugs1612/pr345172/InterType2.java
new file mode 100644 (file)
index 0000000..d442f5e
--- /dev/null
@@ -0,0 +1,44 @@
+import static java.lang.annotation.ElementType.*;
+import java.lang.annotation.*;
+
+public aspect InterType2 {
+
+  @Retention(RetentionPolicy.RUNTIME)
+  @Target({METHOD})
+  public @interface MyAnnotation {
+  }
+
+  public static aspect AroundMethod {
+    Object around() : execution(@MyAnnotation * * (..)) {
+      System.out.println(thisJoinPointStaticPart);
+      return proceed();
+    }   
+  }
+
+  public interface InterTypeIfc {}
+
+  // (1)
+  @MyAnnotation
+  public void InterTypeIfc.m1(int p1) {}
+
+  // (2)
+  public void InterTypeIfc.m1(int p1, int p2) {}
+
+  // (3)
+//  @MyAnnotation
+//  public void m1(int p1) {}
+
+  // (4)
+//  public void m1(int p1, int p2) {}
+
+
+  public static void main(String []argv) throws Exception {
+    new Foo().m1(1);
+    new Foo().m1(1,2);
+  }
+
+  declare parents: Foo implements InterTypeIfc;
+  static class Foo {
+  }
+}
index 3404939ac0c11a63d1dd55cb763ee8f115081bd2..fe57fe8a30c40a44ab1320cead51039dd78b1b91 100644 (file)
@@ -21,6 +21,14 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
  */
 public class Ajc1612Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
 
+       public void testIncorrectAnnos_345172() {
+               runTest("incorrect annos");
+       }
+
+       public void testIncorrectAnnos_345172_2() {
+               runTest("incorrect annos 2");
+       }
+
        public void testSyntheticMethods_327867() {
                runTest("synthetic methods");
        }
index 45b8b9c51e1b8a2c5253c6184a64c0ec231ab775..4a9ee26a7e7821997fca49834e3fabc7349600af 100644 (file)
 <run class="Foo"/>
 </ajc-test>
 
+<ajc-test dir="bugs1612/pr345172" title="incorrect annos">
+<compile files="InterType.java" options="-1.5 -showWeaveInfo">
+<message kind="weave" text="Join point 'method-execution(void InterType$InterTypeIfc.m1(int))' in Type 'InterType' (InterType.java:21) advised by around advice from 'InterType$AroundMethod' (InterType.java:12)"/>
+<!-- 
+<message kind="weave" text="Join point 'method-execution(void InterType$InterTypeIfc.m1(int, int))' in Type 'InterType' (InterType.java:24) advised by around advice from 'InterType$AroundMethod' (InterType.java:12)"/>
+<message kind="weave" text="Join point 'method-execution(void InterType.m1(int))' in Type 'InterType' (InterType.java:28) advised by around advice from 'InterType$AroundMethod' (InterType.java:12)"/>
+-->
+<message kind="weave" text="Type 'InterType$InterTypeIfc' (InterType.java) has intertyped method from 'InterType' (InterType.java:'void InterType$InterTypeIfc.m1(int)')"/>
+<message kind="weave" text="Type 'InterType$InterTypeIfc' (InterType.java) has intertyped method from 'InterType' (InterType.java:'void InterType$InterTypeIfc.m1(int, int)')"/>
+</compile>
+<run class="InterType"/>
+</ajc-test>
+
+<ajc-test dir="bugs1612/pr345172" title="incorrect annos 2">
+<compile files="InterType2.java" options="-1.5">
+</compile>
+<run class="InterType2">
+<stdout>
+<line text="execution(void InterType2.InterTypeIfc.m1(int))"/>
+</stdout></run>
+</ajc-test>
+
+
+
 
 <ajc-test dir="bugs1612/pr328099" title="signed jar ltw">
 <compile files="X.java" classpath="code.jar"/>