aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs163
diff options
context:
space:
mode:
authoraclement <aclement>2008-12-15 21:28:34 +0000
committeraclement <aclement>2008-12-15 21:28:34 +0000
commitf6c0e441ce6ab3d8bb9724d3595d95cef60e786e (patch)
tree10b9c80e98661bc4db8cdb92e8079a36e53b825c /tests/bugs163
parenta2041f02e2d022438f125681339706b97af8e2e7 (diff)
downloadaspectj-f6c0e441ce6ab3d8bb9724d3595d95cef60e786e.tar.gz
aspectj-f6c0e441ce6ab3d8bb9724d3595d95cef60e786e.zip
252722: test and fix: generated super dispatch methods
Diffstat (limited to 'tests/bugs163')
-rw-r--r--tests/bugs163/pr252722/A.java24
-rw-r--r--tests/bugs163/pr252722/ACode.java21
-rw-r--r--tests/bugs163/pr252722/B.java28
-rw-r--r--tests/bugs163/pr252722/BCode.java24
4 files changed, 97 insertions, 0 deletions
diff --git a/tests/bugs163/pr252722/A.java b/tests/bugs163/pr252722/A.java
new file mode 100644
index 000000000..35ae945d3
--- /dev/null
+++ b/tests/bugs163/pr252722/A.java
@@ -0,0 +1,24 @@
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.*;
+
+
+abstract aspect Super {
+ void foo(String s) {}
+}
+
+@Aspect
+public class A extends Super {
+
+ @Around("execution(* m(..))")
+ public void invoke(ProceedingJoinPoint pjp) {
+ super.foo("hello");
+ }
+
+
+ public static void main(String []argv) {
+ new A().m();
+ }
+
+ public void m() {}
+}
+
diff --git a/tests/bugs163/pr252722/ACode.java b/tests/bugs163/pr252722/ACode.java
new file mode 100644
index 000000000..672a5b365
--- /dev/null
+++ b/tests/bugs163/pr252722/ACode.java
@@ -0,0 +1,21 @@
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.*;
+
+
+abstract aspect Super {
+ void foo(String s,int i) {}
+}
+
+public aspect ACode extends Super {
+
+ void around(): execution(* m(..)) {
+ super.foo("hello",7);
+ }
+
+ public static void main(String []argv) {
+ ACode.m();
+ }
+
+ public static void m() {}
+}
+
diff --git a/tests/bugs163/pr252722/B.java b/tests/bugs163/pr252722/B.java
new file mode 100644
index 000000000..23b516fb5
--- /dev/null
+++ b/tests/bugs163/pr252722/B.java
@@ -0,0 +1,28 @@
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.*;
+
+// Now the joinpoint is in a different type, does the super call from advice still work OK?
+
+
+abstract aspect Super {
+ void foo(String s) {}
+}
+
+@Aspect
+public class B extends Super {
+
+ @Around("execution(* m(..))")
+ public void invoke(ProceedingJoinPoint pjp) {
+ super.foo("hello");
+ }
+
+ public static void main(String []argv) {
+ new C().m();
+ }
+}
+
+class C {
+
+ public void m() {}
+}
+
diff --git a/tests/bugs163/pr252722/BCode.java b/tests/bugs163/pr252722/BCode.java
new file mode 100644
index 000000000..1773ac0d9
--- /dev/null
+++ b/tests/bugs163/pr252722/BCode.java
@@ -0,0 +1,24 @@
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.*;
+
+
+abstract aspect Super {
+ void foo(String s) {}
+}
+
+public aspect BCode extends Super {
+
+ void around(): execution(* m(..)) {
+ super.foo("hello");
+ }
+
+ public static void main(String []argv) {
+ new C().m();
+ }
+}
+
+class C {
+
+ public void m() {}
+}
+