aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/bugs152/pr147701/TestBean.java26
-rw-r--r--tests/bugs152/pr147701/TestBean2.java24
-rw-r--r--tests/bugs152/pr147701/TestBean3.java26
3 files changed, 76 insertions, 0 deletions
diff --git a/tests/bugs152/pr147701/TestBean.java b/tests/bugs152/pr147701/TestBean.java
new file mode 100644
index 000000000..e22f092e4
--- /dev/null
+++ b/tests/bugs152/pr147701/TestBean.java
@@ -0,0 +1,26 @@
+// simple version - we go bang if Impl doesnt implement I...
+
+package a.b.c;
+
+import org.aspectj.lang.annotation.*;
+
+interface I { public void m(); }
+
+class Impl implements I {
+ public Impl() {}
+ public void m() {}
+}
+
+@Aspect
+class TestBeanAdvice {
+ @DeclareParents(value="a.b.c.TestBean", defaultImpl=a.b.c.Impl.class)
+ private I implementationInterface;
+}
+
+public class TestBean {
+ public static void main(String []argv) throws Exception {
+ ((I)new TestBean()).m();
+ }
+}
+
+class BeansException extends Exception {}
diff --git a/tests/bugs152/pr147701/TestBean2.java b/tests/bugs152/pr147701/TestBean2.java
new file mode 100644
index 000000000..229de4abf
--- /dev/null
+++ b/tests/bugs152/pr147701/TestBean2.java
@@ -0,0 +1,24 @@
+package a.b.c;
+
+import org.aspectj.lang.annotation.*;
+
+interface I { public void m() throws BeansException; }
+
+class Impl implements I {
+ public Impl() {}
+ public void m() throws BeansException { }
+}
+
+@Aspect
+class TestBeanAdvice {
+ @DeclareParents(value="a.b.c.TestBean2", defaultImpl=a.b.c.Impl.class)
+ private I implementationInterface;
+}
+
+public class TestBean2 {
+ public static void main(String []argv) throws Exception {
+ ((I)new TestBean2()).m();
+ }
+}
+
+class BeansException extends Exception {}
diff --git a/tests/bugs152/pr147701/TestBean3.java b/tests/bugs152/pr147701/TestBean3.java
new file mode 100644
index 000000000..ad5fe1d2b
--- /dev/null
+++ b/tests/bugs152/pr147701/TestBean3.java
@@ -0,0 +1,26 @@
+// simple version - we go bang if Impl doesnt implement I...
+
+package a.b.c;
+
+import org.aspectj.lang.annotation.*;
+
+interface I { public void m(); }
+
+class Impl { // error!!! implements I {
+ public Impl() {}
+ public void m() {}
+}
+
+@Aspect
+class TestBeanAdvice {
+ @DeclareParents(value="a.b.c.TestBean3", defaultImpl=a.b.c.Impl.class)
+ private I implementationInterface;
+}
+
+public class TestBean3 {
+ public static void main(String []argv) throws Exception {
+ ((I)new TestBean3()).m();
+ }
+}
+
+class BeansException extends Exception {}