aboutsummaryrefslogtreecommitdiffstats
path: root/tests/new/QualifiedSuperCall.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/new/QualifiedSuperCall.java')
-rw-r--r--tests/new/QualifiedSuperCall.java93
1 files changed, 93 insertions, 0 deletions
diff --git a/tests/new/QualifiedSuperCall.java b/tests/new/QualifiedSuperCall.java
new file mode 100644
index 000000000..c25fd3be8
--- /dev/null
+++ b/tests/new/QualifiedSuperCall.java
@@ -0,0 +1,93 @@
+
+import org.aspectj.testing.*;
+
+// todo: package-qualified calls
+/** PR651 PUREJAVA qualified super method calls */
+public class QualifiedSuperCall {
+ public static void main (String[] args) {
+ Super s;
+ s = new Super();
+ Tester.check(null != s, "new Super()");
+ s = new Sub();
+ Tester.check(null != s, "new Sub()");
+ s = new UnqualifiedSub();
+ Tester.check(null != s, "new UnqualifiedSub()");
+ s = new SubSub();
+ Tester.check(null != s, "new SubSub()");
+ s = new UnqualifiedSubSub();
+ Tester.check(null != s, "new UnqualifiedSubSub()");
+ s = new Mid();
+ Tester.check(null != s, "new Mid()");
+ s = new SubMid();
+ Tester.check(null != s, "new SubMid()");
+ s = new UnqualifiedSubMid();
+ Tester.check(null != s, "new UnqualifiedSubMid()");
+ }
+ static {
+ Tester.m("Super.duper=Sub()");
+ Tester.m("Super.duper=UnqualifiedSub()");
+ Tester.m("Super.duper=SubSub()");
+ Tester.m("Super.duper=UnqualifiedSubSub()");
+ Tester.m("Super.duper=SubMid()");
+ Tester.m("Mid.duper=SubMid()");
+ Tester.m("Mid.duper=UnqualifiedSubMid()");
+ }
+
+}
+
+class Super {
+ Super() {}
+ void duper(String caller) {
+ Tester.event("Super.duper=" + caller);
+ }
+}
+
+class Sub extends Super {
+ Sub() {
+ Super.super();
+ Super.super.duper("Sub()");
+ }
+}
+class UnqualifiedSub extends Super {
+ UnqualifiedSub() {
+ super();
+ super.duper("UnqualifiedSub()");
+ }
+}
+
+class SubSub extends Sub {
+ SubSub() {
+ Sub.super();
+ Sub.super.duper("SubSub()");
+ }
+}
+class UnqualifiedSubSub extends UnqualifiedSub {
+ UnqualifiedSubSub() {
+ super();
+ super.duper("UnqualifiedSubSub()");
+ }
+}
+
+class Mid extends Super {
+ Mid() { }
+ void duper(String caller) {
+ Tester.event("Mid.duper=" + caller);
+ }
+}
+
+class SubMid extends Mid {
+ SubMid() {
+ Mid.super(); // XXX illegal ordering?
+ Super.super();
+ Super.super.duper("SubMid()");
+ Mid.super.duper("SubMid()");
+ }
+}
+class UnqualifiedSubMid extends Mid {
+ UnqualifiedSubMid() {
+ super();
+ super.duper("UnqualifiedSubMid()");
+ }
+}
+
+