diff options
author | wisberg <wisberg> | 2002-12-16 18:51:06 +0000 |
---|---|---|
committer | wisberg <wisberg> | 2002-12-16 18:51:06 +0000 |
commit | 144143c2970a1e874d74cdbd0f8c622d4282a3c3 (patch) | |
tree | b12383d3d9e76c7e1f25f7fbec83051ef17f81fb /tests/new/InnerInterfaceNames.java | |
parent | fafae443719b26159ab2d7dac1c9b46b5e00b671 (diff) | |
download | aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.tar.gz aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.zip |
initial version
Diffstat (limited to 'tests/new/InnerInterfaceNames.java')
-rw-r--r-- | tests/new/InnerInterfaceNames.java | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/new/InnerInterfaceNames.java b/tests/new/InnerInterfaceNames.java new file mode 100644 index 000000000..249b7bb13 --- /dev/null +++ b/tests/new/InnerInterfaceNames.java @@ -0,0 +1,58 @@ + +import org.aspectj.testing.*; + +/** @testcase PR#685 subaspect method declaration on superaspect inner interface (names) */ +public class InnerInterfaceNames { + public static void main (String[] args) { + Object o = new C().getThis(); + Tester.check(null != o, + "null != new C().getThis()"); + ConcreteAspect cc = ConcreteAspect.aspectOf(); + Tester.check(null != cc, + "null != ConcreteAspect.aspectOf()"); + Object p = cc.getField(); + Tester.check(null != p, "null != cc.getField()"); + } +} +class C implements AbstractAspect.InnerInterface {} + +abstract aspect AbstractAspect { + /** bug iff interface defined in abstract aspect + * - not outer or subaspect + */ + interface InnerInterface {} + + public Object publicField = new Object(); + + Object getField() { + return publicField; // bad CE "no instance available" + } +} + +aspect ConcreteAspect extends AbstractAspect { + /** bug iff method declaration on parent inner interface */ + public Object InnerInterface.getThis() { + return this; // bug: no instance available + } +} + + +/* +abstract aspect Composition { + interface Component {} + + public Object publicField = new Object(); + + Object test() { + return publicField; // bad CE "no instance available" + } + +} +aspect SampleComposition extends Composition { + public Object Component.getThis() { + return this; + } +} +*/ + + |