org.aspectj/tests/new/OrderOfExtendsPlusAndImplementsPlus.java
2002-12-16 18:51:06 +00:00

38 lines
980 B
Java

import org.aspectj.testing.Tester;
public class OrderOfExtendsPlusAndImplementsPlus {
public static void main(String[] args) {
try {
new OrderOfExtendsPlusAndImplementsPlus().realMain(args);
} catch (Throwable t) {
Tester.throwable(t);
}
}
public void realMain(String[] args) throws Exception {
Class[] cs = new Class[]{C.class, D.class};
for (int i = 0; i < cs.length; i++) {
check(cs[i]);
}
}
private void check(Class c) {
Tester.checkEq(c.getInterfaces()[0], I.class,
c + " doesn't implement " + I.class);
Tester.checkEq(c.getSuperclass(), S.class,
c + " doesn't extend " + S.class);
}
}
class S {}
interface I {}
class C {}
class D {}
aspect A {
declare parents: C implements I;
declare parents: C extends S;
}
aspect B {
declare parents: D extends S;
declare parents: D implements I;
}