@@ -0,0 +1,3 @@ | |||
public aspect AspectAB { | |||
declare parents: Z+ implements java.io.Serializable; | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect AspectX1 { | |||
declare parents: Bottom1 extends Middle1; | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect AspectX2 { | |||
declare parents: Bottom2 extends Middle2; | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect AspectX3 { | |||
declare parents: Bottom3 extends Middle3; | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect AspectX4 { | |||
declare parents: Bottom4 extends Middle4; | |||
} |
@@ -0,0 +1,12 @@ | |||
public class B extends Z { | |||
public static void main(String[] args) { | |||
B b = new B(); | |||
if (b.getClass().getInterfaces().length>0) { | |||
throw new RuntimeException("B should not implement any interfaces: "+b.getClass().getInterfaces()[0].toString()); | |||
} | |||
if (!(b instanceof java.io.Serializable)) { | |||
throw new RuntimeException("B should be serializable! Inherited from A"); | |||
} | |||
} | |||
} |
@@ -0,0 +1,3 @@ | |||
public class Bottom1 extends Top1 { | |||
public static void main(String[]argv) {} | |||
} |
@@ -0,0 +1,9 @@ | |||
public class Bottom2 extends Top2 { | |||
public Bottom2() { | |||
super(); | |||
} | |||
public static void main(String[]argv) { | |||
new Bottom2(); | |||
} | |||
} |
@@ -0,0 +1,14 @@ | |||
public class Bottom3 extends Top3 { | |||
public Bottom3() { | |||
super(); | |||
} | |||
public static void main(String[]argv) { | |||
Bottom3 b = new Bottom3(); | |||
b.runit(); | |||
} | |||
public void runit() { | |||
super.m("x"); | |||
} | |||
} |
@@ -0,0 +1,10 @@ | |||
public class Bottom4 extends Top4 { | |||
public Bottom4() { | |||
super("hello"); | |||
} | |||
public static void main(String[]argv) { | |||
Bottom4 b = new Bottom4(); | |||
} | |||
} |
@@ -0,0 +1,2 @@ | |||
public class Middle1 extends Top1 { | |||
} |
@@ -0,0 +1,2 @@ | |||
public class Middle2 extends Top2 { | |||
} |
@@ -0,0 +1,5 @@ | |||
public class Middle3 extends Top3 { | |||
public void m(String s) { | |||
System.err.println("Middle3.m(String)"); | |||
} | |||
} |
@@ -0,0 +1,5 @@ | |||
public class Middle4 extends Top4 { | |||
public Middle4() { | |||
} | |||
} |
@@ -0,0 +1,2 @@ | |||
public class Top1 { | |||
} |
@@ -0,0 +1,2 @@ | |||
public class Top2 { | |||
} |
@@ -0,0 +1,5 @@ | |||
public class Top3 { | |||
public void m(String s) { | |||
System.err.println("Top3.m(String)"); | |||
} | |||
} |
@@ -0,0 +1,5 @@ | |||
public class Top4 { | |||
public Top4() {} | |||
public Top4(String s) { | |||
} | |||
} |
@@ -0,0 +1,2 @@ | |||
public class Z { | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect Aspect1 { | |||
declare parents: Middle1 extends Top1; | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect Aspect2 { | |||
declare parents: Middle2 extends Top2; | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect Aspect3 { | |||
declare parents: Middle3 extends Top3; | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect Aspect4 { | |||
declare parents: Middle4 extends Top4; | |||
} |
@@ -0,0 +1,6 @@ | |||
public aspect Aspect5 { | |||
declare parents: Middle4 extends Top4; | |||
public void Middle4.absMethod0() { } | |||
public void Middle4.absMethod2() { } | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect Aspect6 { | |||
declare parents: Middle6 extends Top6; | |||
} |
@@ -0,0 +1,21 @@ | |||
public class Bottom1 extends Top1 { | |||
public void publicMethod() { | |||
} | |||
protected void protectedMethod() { | |||
} | |||
void defaultMethod() { | |||
} | |||
private void privateMethod() { | |||
} | |||
public static void main(String[]argv) { | |||
Bottom1 b = new Bottom1(); | |||
b.publicMethod(); | |||
b.protectedMethod(); | |||
b.defaultMethod(); | |||
b.privateMethod(); | |||
} | |||
} |
@@ -0,0 +1,10 @@ | |||
public class Bottom2 extends Top2 { | |||
public void publicMethod_voidReturn() { } | |||
public String publicMethod_StringReturn() { return "";} | |||
public Integer publicMethod_IntegerReturn() { return new Integer(2);} | |||
// public Super publicMethod_SuperReturn() { return null;} | |||
} |
@@ -0,0 +1,22 @@ | |||
public class Middle1 { | |||
protected void publicMethod() { | |||
} | |||
void protectedMethod() { | |||
} | |||
private void defaultMethod() { | |||
} | |||
private void privateMethod() { | |||
} | |||
public static void main(String[] argv) { | |||
Middle1 m = new Middle1(); | |||
m.publicMethod(); | |||
m.protectedMethod(); | |||
m.defaultMethod(); | |||
m.privateMethod(); | |||
} | |||
} |
@@ -0,0 +1,10 @@ | |||
public class Middle2 { | |||
public int publicMethod_voidReturn() { return 2;} | |||
public String publicMethod_StringReturn() { return "";} | |||
public int publicMethod_IntegerReturn() { return 3;} | |||
// public Sub publicMethod_SuperReturn() { return null;} | |||
} |
@@ -0,0 +1,4 @@ | |||
public class Middle3 { | |||
public void absMethod1() {} | |||
} |
@@ -0,0 +1,4 @@ | |||
public class Middle4 { | |||
public void absMethod1() {} | |||
} |
@@ -0,0 +1,26 @@ | |||
public class Middle6 { | |||
protected void publicMethod() { | |||
} | |||
void protectedMethod() { | |||
} | |||
private void defaultMethod() { | |||
} | |||
private void privateMethod() { | |||
} | |||
private void anotherPublicMethod() { } | |||
private void anotherProtectedMethod() {} | |||
public static void main(String[] argv) { | |||
Middle6 m = new Middle6(); | |||
m.publicMethod(); | |||
m.protectedMethod(); | |||
m.defaultMethod(); | |||
m.privateMethod(); | |||
} | |||
} |
@@ -0,0 +1 @@ | |||
public class Sub extends Super {} |
@@ -0,0 +1 @@ | |||
public class Super {} |
@@ -0,0 +1,13 @@ | |||
public class Top1 { | |||
public void publicMethod() { | |||
} | |||
protected void protectedMethod() { | |||
} | |||
void defaultMethod() { | |||
} | |||
private void privateMethod() { | |||
} | |||
} |
@@ -0,0 +1,10 @@ | |||
public class Top2 { | |||
public void publicMethod_voidReturn() { } | |||
public String publicMethod_StringReturn() { return "";} | |||
public Integer publicMethod_IntegerReturn() { return new Integer(3);} | |||
// public Super publicMethod_SuperReturn() { return null;} | |||
} |
@@ -0,0 +1,6 @@ | |||
public abstract class Top3 { | |||
public abstract void absMethod1(); | |||
public abstract void absMethod2(); | |||
public void absMethod3() {}; | |||
} |
@@ -0,0 +1,6 @@ | |||
public abstract class Top4 extends TopTop4 { | |||
public abstract void absMethod1(); | |||
public abstract void absMethod2(); | |||
public void absMethod3() {}; | |||
} |
@@ -0,0 +1,13 @@ | |||
public class Top6 extends TopTop6 { | |||
public void publicMethod() { | |||
} | |||
protected void protectedMethod() { | |||
} | |||
void defaultMethod() { | |||
} | |||
private void privateMethod() { | |||
} | |||
} |
@@ -0,0 +1,3 @@ | |||
public abstract class TopTop4 { | |||
public abstract void absMethod0(); | |||
} |
@@ -0,0 +1,6 @@ | |||
public abstract class TopTop6 { | |||
public void anotherPublicMethod() {} | |||
protected void anotherProtectedMethod() {} | |||
} |
@@ -0,0 +1,7 @@ | |||
public class A1 { | |||
public static void staticMethod() { | |||
} | |||
public void instanceMethod() { | |||
} | |||
} |
@@ -0,0 +1,2 @@ | |||
public final class A2 { | |||
} |
@@ -0,0 +1,2 @@ | |||
public class A3 { | |||
} |
@@ -0,0 +1,10 @@ | |||
public class B1 { | |||
// inherited via decp | |||
public void staticMethod() { | |||
} | |||
// inherited via decp | |||
public static void instanceMethod() { | |||
} | |||
} |
@@ -0,0 +1,6 @@ | |||
public class B2 { | |||
public static void main(String[] argv) { | |||
B2 b = new B2(); | |||
} | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect X1 { | |||
declare parents: B1 extends A1; | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect X2 { | |||
declare parents: B2 extends A2; | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect X3 { | |||
declare parents: java.lang.Obj* extends A3; | |||
} |
@@ -0,0 +1,3 @@ | |||
public aspect SimpleAspect1 { | |||
declare parents: SimpleClass1 implements SimpleIntf1; | |||
} |
@@ -0,0 +1,5 @@ | |||
public aspect SimpleAspect2 { | |||
declare parents: SimpleClass2 implements Runnable; | |||
public void SimpleClass2.run() {} | |||
} |
@@ -0,0 +1,3 @@ | |||
public class SimpleClass1 { | |||
public Integer getInteger() { return new Integer(42);} | |||
} |
@@ -0,0 +1 @@ | |||
public class SimpleClass2 {} |
@@ -0,0 +1,4 @@ | |||
public interface SimpleIntf1 { | |||
public String getString(); | |||
public Integer getInteger(); | |||
} |
@@ -0,0 +1,6 @@ | |||
public class A { | |||
public A() { | |||
} | |||
public A(int i) { | |||
} | |||
} |
@@ -0,0 +1,3 @@ | |||
public class B extends A { | |||
} | |||
@@ -0,0 +1,24 @@ | |||
public class C extends A{ | |||
public void helper0() { | |||
} | |||
public C() { | |||
super(3); | |||
} | |||
public static void main(String[] argv) { | |||
new C(); | |||
} | |||
public C(String s) { | |||
super(5); | |||
} | |||
public void helper1() { | |||
} | |||
public C(float f) { | |||
} | |||
public void helper2() { } | |||
} |
@@ -0,0 +1,7 @@ | |||
public aspect X { | |||
declare parents: C extends B; | |||
public B.new(int i) { | |||
super(i); | |||
} | |||
} |