diff options
-rw-r--r-- | tests/bugs1612/prx/C.java | 24 | ||||
-rw-r--r-- | tests/bugs1612/prx/D.java | 20 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java | 8 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml | 13 |
4 files changed, 64 insertions, 1 deletions
diff --git a/tests/bugs1612/prx/C.java b/tests/bugs1612/prx/C.java new file mode 100644 index 000000000..e82f44ad5 --- /dev/null +++ b/tests/bugs1612/prx/C.java @@ -0,0 +1,24 @@ +import java.lang.annotation.*; + +@Retention(RetentionPolicy.RUNTIME) +@interface Anno { + Class value(); +//int i(); +} + +public class C { + + @Anno(String.class) + //@Anno(i=3) + public int i; + + public static void main(String []argv) { + System.out.println(new C().i); + } +} + +aspect X { + //before(): get(@Anno(String.class) * *(..)) {} + before(): get(@Anno(value=String.class) * *) {} + //before(): get(@Anno(i=3) * *) {} +} diff --git a/tests/bugs1612/prx/D.java b/tests/bugs1612/prx/D.java new file mode 100644 index 000000000..058bf8c3c --- /dev/null +++ b/tests/bugs1612/prx/D.java @@ -0,0 +1,20 @@ +import java.lang.annotation.*; + +@Retention(RetentionPolicy.RUNTIME) +@interface Anno { +int i(); +} + +public class C { + + @Anno(i=3) + public int i; + + public static void main(String []argv) { + System.out.println(new C().i); + } +} + +aspect X { + before(): get(@Anno(i!=3) * *) {} +} diff --git a/tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java b/tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java index 4667d617a..a6182f18e 100644 --- a/tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java @@ -35,6 +35,14 @@ public class Ajc1612Tests extends org.aspectj.testing.XMLBasedAjcTestCase { // runTest("itd split compilation"); // } + public void testClassRef() throws Exception { + runTest("class reference in annotation value"); + } + + public void testClassRef2() throws Exception { + runTest("class reference in annotation value 2"); + } + public void testAnnotationFieldBindingOptimization_356612() throws Exception { runTest("annotation field binding optimization"); } diff --git a/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml b/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml index 07b5a9993..60ba01244 100644 --- a/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml +++ b/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml @@ -2,13 +2,24 @@ <suite> +<ajc-test dir="bugs1612/prx" title="class reference in annotation value"> +<compile files="C.java" options="-1.5"/> +<run class="C"> +</run> +</ajc-test> + +<ajc-test dir="bugs1612/prx" title="class reference in annotation value 2"> +<compile files="D.java" options="-1.5"/> +<run class="D"> +</run> +</ajc-test> + <ajc-test dir="bugs1612/pr356612" title="annotation field binding optimization"> <compile files="AnnoBinding.java" options="-1.5"/> <run class="AnnoBinding"> </run> </ajc-test> - <ajc-test dir="bugs1612/pr356612" title="annotation field binding optimization - 2"> <compile files="AnnoBinding2.java" options="-1.5"/> <run class="AnnoBinding2"> |