aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/bugs163/pr253109/CodeOne.java16
-rw-r--r--tests/bugs163/pr253109/CodeTwo.java13
-rw-r--r--tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java32
-rw-r--r--tests/src/org/aspectj/systemtest/ajc163/ajc163.xml13
4 files changed, 66 insertions, 8 deletions
diff --git a/tests/bugs163/pr253109/CodeOne.java b/tests/bugs163/pr253109/CodeOne.java
new file mode 100644
index 000000000..0f73cac0d
--- /dev/null
+++ b/tests/bugs163/pr253109/CodeOne.java
@@ -0,0 +1,16 @@
+import java.util.*;
+
+public aspect CodeOne {
+ before(): execution(* CodeOne.*(..)) && args(List<Number>) {}
+ before(): execution(* CodeOne.*(..)) && args(List<Integer>) {}
+
+ void m(List<Integer> li) {}
+
+ public void callm() {
+ List<Number> ln = new ArrayList<Number>();
+ List<Integer> li = new ArrayList<Integer>();
+ // m(ln);//not allowed
+ m(li);
+ }
+
+}
diff --git a/tests/bugs163/pr253109/CodeTwo.java b/tests/bugs163/pr253109/CodeTwo.java
new file mode 100644
index 000000000..ea5a3026b
--- /dev/null
+++ b/tests/bugs163/pr253109/CodeTwo.java
@@ -0,0 +1,13 @@
+import java.util.*;
+
+public aspect CodeTwo {
+ before(): execution(* CodeTwo.*(..)) && args(List<? extends Number>) {}
+
+ void m(List<Integer> li) {}
+
+ public void callm() {
+ List<? extends Number> lqn = new ArrayList<Number>();
+ // m(lqn);
+ }
+
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
index 77f2cb55e..2c83fd4db 100644
--- a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
@@ -23,7 +23,15 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
public class Ajc163Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
- public void testBrokenLVT_pr194314_1() {
+ public void testGenericPointcuts_1() {
+ runTest("generic pointcuts - 1");
+ }
+
+ public void testGenericPointcuts_2() {
+ runTest("generic pointcuts - 2");
+ }
+
+ public void testBrokenLVT_pr194314_1() throws Exception {
runTest("broken lvt - 1");
JavaClass jc = Utils.getClassFrom(ajc.getSandboxDirectory().getAbsolutePath(), "Service");
Method[] ms = jc.getMethods();
@@ -57,20 +65,28 @@ public class Ajc163Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
System.out.println(m.getLocalVariableTable());
LocalVariable[] lvt = m.getLocalVariableTable().getLocalVariableTable();
assertEquals(8, lvt.length);
- // assertEquals(2, m.getLocalVariableTable().getLocalVariableTable().length);
+ // assertEquals(2,
+ // m.getLocalVariableTable().getLocalVariableTable().length);
// Before I've started any work on this:
- // LocalVariable(start_pc = 0, length = 68, index = 0:ServiceInterceptorCodeStyle this)
- // LocalVariable(start_pc = 0, length = 68, index = 1:org.aspectj.runtime.internal.AroundClosure ajc_aroundClosure)
- // LocalVariable(start_pc = 0, length = 68, index = 2:org.aspectj.lang.JoinPoint thisJoinPoint)
+ // LocalVariable(start_pc = 0, length = 68, index =
+ // 0:ServiceInterceptorCodeStyle this)
+ // LocalVariable(start_pc = 0, length = 68, index =
+ // 1:org.aspectj.runtime.internal.AroundClosure ajc_aroundClosure)
+ // LocalVariable(start_pc = 0, length = 68, index =
+ // 2:org.aspectj.lang.JoinPoint thisJoinPoint)
// LocalVariable(start_pc = 9, length = 59, index = 3:Object[] args)
// LocalVariable(start_pc = 21, length = 47, index = 4:long id)
// Method signature:
- // private static final void method_aroundBody1$advice(Service, long, org.aspectj.lang.JoinPoint,
- // ServiceInterceptorCodeStyle, org.aspectj.runtime.internal.AroundClosure, org.aspectj.lang.JoinPoint);
+ // private static final void method_aroundBody1$advice(Service, long,
+ // org.aspectj.lang.JoinPoint,
+ // ServiceInterceptorCodeStyle,
+ // org.aspectj.runtime.internal.AroundClosure,
+ // org.aspectj.lang.JoinPoint);
//
- // Service, JoinPoint, ServiceInterceptorCodeStyle, AroundClosure, JoinPoint
+ // Service, JoinPoint, ServiceInterceptorCodeStyle, AroundClosure,
+ // JoinPoint
// args should be in slot 7 and the long in position 8
diff --git a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
index c76014610..b7ddfa85c 100644
--- a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
+++ b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
@@ -3,6 +3,19 @@
<suite>
+ <ajc-test dir="bugs163/pr253109" title="generic pointcuts - 1">
+ <compile files="CodeOne.java" options="-1.5">
+ <message kind="warning" line="4" text="has not been applied"/>
+ </compile>
+ </ajc-test>
+
+ <ajc-test dir="bugs163/pr253109" title="generic pointcuts - 2">
+ <compile files="CodeTwo.java" options="-1.5">
+ <message kind="warning" line="4" text="has not been applied"/>
+ </compile>
+ </ajc-test>
+
+
<ajc-test dir="bugs163/pr194314" title="broken lvt - 1">
<compile files="Service.java IService.java Main.java ServiceInterceptor.java" options="-1.5"/>
</ajc-test>