Index: bugs150/PR113447.java =================================================================== RCS file: bugs150/PR113447.java diff -N bugs150/PR113447.java --- bugs150/PR113447.java 27 Oct 2005 13:49:45 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,40 +0,0 @@ -public class PR113447 { - - public static void main(String[] args) { - PR113447 me = new PR113447(); - me.method1(); - me.method3(); - } - - public void method1(){} - - public void method3(){} -} - -aspect Super { - - // second method doesn't exist - pointcut pc1(PR113447 s) : - (this(s) && execution(void method1())) - || (this(s) && execution(void method2())); - - before(PR113447 s) : pc1(s) { - } - - // second method does exist - pointcut pc2(PR113447 s) : - (this(s) && execution(void method1())) - || (this(s) && execution(void method3())); - - before(PR113447 s) : pc2(s) { - } - - // second method doesn't exist - pointcut pc3(PR113447 s) : - (args(s) && execution(void method1())) - || (args(s) && execution(void method2())); - - before(PR113447 s) : pc3(s) { - } - -} Index: src/org/aspectj/systemtest/ajc150/Ajc150Tests.java =================================================================== RCS file: /home/technology/org.aspectj/modules/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java,v retrieving revision 1.109 diff -u -r1.109 Ajc150Tests.java --- src/org/aspectj/systemtest/ajc150/Ajc150Tests.java 27 Oct 2005 18:06:37 -0000 1.109 +++ src/org/aspectj/systemtest/ajc150/Ajc150Tests.java 28 Oct 2005 14:43:00 -0000 @@ -647,6 +647,26 @@ runTest("no verify error with two this pcds"); } + public void testNoVerifyErrorWithTwoAtThisPCDs_pr113447() { + runTest("no verify error with two at this pcds"); + } + + public void testNoVerifyErrorWithAtWithinPCDs_pr113447() { + runTest("no verify error with at within pcds"); + } + + public void testNoVerifyErrorWithAtWithincodePCDs_pr113447() { + runTest("no verify error with at withincode pcds"); + } + + public void testNoVerifyErrorWithAtAnnotationPCDs_pr113447() { + runTest("no verify error with at annotation pcds"); + } + + public void testNoVerifyErrorWithTwoArgsPCDs_pr113447() { + runTest("no verify error with two args pcds"); + } + // helper methods..... public SyntheticRepository createRepos(File cpentry) { Index: src/org/aspectj/systemtest/ajc150/ajc150.xml =================================================================== RCS file: /home/technology/org.aspectj/modules/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml,v retrieving revision 1.181 diff -u -r1.181 ajc150.xml --- src/org/aspectj/systemtest/ajc150/ajc150.xml 28 Oct 2005 07:17:39 -0000 1.181 +++ src/org/aspectj/systemtest/ajc150/ajc150.xml 28 Oct 2005 14:43:04 -0000 @@ -761,12 +761,42 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: bugs150/pr113447/PR113447.java =================================================================== RCS file: bugs150/pr113447/PR113447.java diff -N bugs150/pr113447/PR113447.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ bugs150/pr113447/PR113447.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,40 @@ +public class PR113447 { + + public static void main(String[] args) { + PR113447 me = new PR113447(); + me.method1(); + me.method3(); + } + + public void method1(){} + + public void method3(){} +} + +aspect Super { + + // second method doesn't exist + pointcut pc1(PR113447 s) : + (this(s) && execution(void method1())) + || (this(s) && execution(void method2())); + + before(PR113447 s) : pc1(s) { + } + + // second method does exist + pointcut pc2(PR113447 s) : + (this(s) && execution(void method1())) + || (this(s) && execution(void method3())); + + before(PR113447 s) : pc2(s) { + } + + // second method doesn't exist + pointcut pc3(PR113447 s) : + (args(s) && execution(void method1())) + || (args(s) && execution(void method2())); + + before(PR113447 s) : pc3(s) { + } + +} Index: bugs150/pr113447/PR113447a.java =================================================================== RCS file: bugs150/pr113447/PR113447a.java diff -N bugs150/pr113447/PR113447a.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ bugs150/pr113447/PR113447a.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,65 @@ +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +@interface Annotation{}; + +@Annotation +public class PR113447a { + + public static void main(String[] args) { + PR113447a me = new PR113447a(); + me.method1(); + me.method3(); + me.method4(2); + } + + public void method1(){} + + public void method3(){} + + public void method4(int i){} + public void method5(int i){} +} + +aspect Super { + + // second method doesn't exist + pointcut pc1(Annotation a) : + (@this(a) && execution(void method1())) + || (@this(a) && execution(void method2())); + + before(Annotation a) : pc1(a) {} + + // second method does exist + pointcut pc2(Annotation a) : + (@this(a) && execution(void method1())) + || (@this(a) && execution(void method3())); + + before(Annotation a) : pc2(a) {} + + // second method doesn't exist + pointcut pc3(Annotation a) : + (@target(a) && call(void method1())) + || (@target(a) && call(void method2())); + + before(Annotation a) : pc3(a) { + } + + // second method does exist + pointcut pc4(Annotation a) : + (@target(a) && call(void method1())) + || (@target(a) && call(void method3())); + + before(Annotation a) : pc4(a) { + } + + // @this equivalent of BaseTests.test024 which was affected by + // the fix for the non annotation version + pointcut p(Annotation a) : + @target(a) && (call(void method4(int)) + || call(void method5(int))); + + before(Annotation a) : p(a) {} + after(Annotation a): p(a) {} +} Index: bugs150/pr113447/PR113447b.java =================================================================== RCS file: bugs150/pr113447/PR113447b.java diff -N bugs150/pr113447/PR113447b.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ bugs150/pr113447/PR113447b.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,27 @@ +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +@interface Annotation{}; + +@Annotation +public class PR113447b { + + public static void main(String[] args) { + PR113447b me = new PR113447b(); + me.method4(1); + } + + public void method4(int i){} + public void method5(int i){} +} + +aspect Super { + + pointcut p(Annotation a) : + @within(a) && (call(void method4(int)) + || call(void method5(int))); + + before(Annotation a) : p(a) {} + +} Index: bugs150/pr113447/PR113447c.java =================================================================== RCS file: bugs150/pr113447/PR113447c.java diff -N bugs150/pr113447/PR113447c.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ bugs150/pr113447/PR113447c.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,27 @@ +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +@interface Annotation{}; + +public class PR113447c { + + @Annotation + public static void main(String[] args) { + PR113447c me = new PR113447c(); + me.method4(1); + } + + public void method4(int i){} + public void method5(int i){} +} + +aspect Super { + + pointcut p(Annotation a) : + @withincode(a) && (call(void method4(int)) + || call(void method5(int))); + + before(Annotation a) : p(a) {} + +} Index: bugs150/pr113447/PR113447d.java =================================================================== RCS file: bugs150/pr113447/PR113447d.java diff -N bugs150/pr113447/PR113447d.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ bugs150/pr113447/PR113447d.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,25 @@ +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +@interface Annotation{}; + +public class PR113447d { + + public static void main(String[] args) { + PR113447d me = new PR113447d(); + me.method4(1); + } + + @Annotation public void method4(int i){} + @Annotation public void method5(int i){} +} + +aspect Super { + + pointcut p(Annotation a) : + @annotation(a) && (call(void method4(int)) + || call(void method5(int))); + + before(Annotation a) : p(a) {} +} Index: bugs150/pr113447/PR113447e.java =================================================================== RCS file: bugs150/pr113447/PR113447e.java diff -N bugs150/pr113447/PR113447e.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ bugs150/pr113447/PR113447e.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,36 @@ +public class PR113447e { + + public static void main(String[] args) { + PR113447e me = new PR113447e(); + me.method1(1); + me.method3(2); + } + + public void method1(int i){} + + public void method3(int i){} +} + +aspect Super { + + // second method doesn't exist + pointcut pc1(int i) : + (args(i) && call(void method1(int))) + || (args(i) && call(void method2(int))); + + before(int i) : pc1(i) {} + + // second method does exist + pointcut pc2(int i) : + (args(i) && call(void method1(int))) + || (args(i) && call(void method3(int))); + + before(int i) : pc2(i) {} + + // ensure this still works + pointcut pc3(int i) : + args(i) && (call(void method1(int)) || call(void method2(int))); + + before(int i) : pc3(i) {} + after(int i) : pc3(i) {} +}