diff options
author | acolyer <acolyer> | 2003-03-27 17:01:11 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2003-03-27 17:01:11 +0000 |
commit | 517d030a531bd6397c5f76ae3e190fe52175360d (patch) | |
tree | f4a08cc7006e64c87ff94536a03c9a1e790128c7 /tests | |
parent | 989aaf7855fdb2e4f176d6e7b32a3bd0131ee515 (diff) | |
download | aspectj-517d030a531bd6397c5f76ae3e190fe52175360d.tar.gz aspectj-517d030a531bd6397c5f76ae3e190fe52175360d.zip |
Test cases for declare parent scenarios
Diffstat (limited to 'tests')
-rw-r--r-- | tests/new/declareParents/Driver.java | 33 | ||||
-rw-r--r-- | tests/new/declareParents/IllegalAdoption.java | 16 |
2 files changed, 49 insertions, 0 deletions
diff --git a/tests/new/declareParents/Driver.java b/tests/new/declareParents/Driver.java new file mode 100644 index 000000000..ec70d26a1 --- /dev/null +++ b/tests/new/declareParents/Driver.java @@ -0,0 +1,33 @@ +import org.aspectj.testing.Tester; + +public class Driver { + public static void main(String[] args) { test(); } + + public static void test() { + + C c = new C(); + D d = new D(); + E e = new E(); + + Tester.check( c instanceof A, "C should extend A"); + Tester.check( c instanceof B, "Declare parents threw away superclass info: C should extend B"); + + Tester.check( d instanceof A, "D should extend A"); + Tester.check( e instanceof A, "E should extend A"); + + } + + + static class A {}; + static class B extends A {}; + static class C extends B {}; + + static class D {}; + static class E extends D {}; + + static aspect Adoption { + declare parents : C extends A; + declare parents : D extends A; + }; +} + diff --git a/tests/new/declareParents/IllegalAdoption.java b/tests/new/declareParents/IllegalAdoption.java new file mode 100644 index 000000000..3df00a8e1 --- /dev/null +++ b/tests/new/declareParents/IllegalAdoption.java @@ -0,0 +1,16 @@ +import org.aspectj.testing.Tester; + +public class IllegalAdoption { + + static class A {}; + static class B extends A {}; + static class C extends B {}; + + static class D {}; + static class E extends D {}; + + static aspect Adoption { + declare parents : E extends C; // should cause a compilation error + } +} + |