şunun yansıması
https://github.com/eclipse-aspectj/aspectj.git
eşitlendi 2024-09-03 17:56:34 +02:00
94 satır
2.2 KiB
Java
94 satır
2.2 KiB
Java
|
|
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()");
|
|
}
|
|
}
|
|
|
|
|