summaryrefslogtreecommitdiffstats
path: root/tests/new/InnerInterfaceNames.java
diff options
context:
space:
mode:
authorwisberg <wisberg>2002-12-16 18:51:06 +0000
committerwisberg <wisberg>2002-12-16 18:51:06 +0000
commit144143c2970a1e874d74cdbd0f8c622d4282a3c3 (patch)
treeb12383d3d9e76c7e1f25f7fbec83051ef17f81fb /tests/new/InnerInterfaceNames.java
parentfafae443719b26159ab2d7dac1c9b46b5e00b671 (diff)
downloadaspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.tar.gz
aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.zip
initial version
Diffstat (limited to 'tests/new/InnerInterfaceNames.java')
-rw-r--r--tests/new/InnerInterfaceNames.java58
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;
+ }
+}
+*/
+
+