summaryrefslogtreecommitdiffstats
path: root/tests/new/declareParents/Driver.java
blob: ec70d26a11403bfb07cfd07702f8a753088af012 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import org.aspectj.testing.Tester;

public class Driver {
  public static void main(String[] args) { test(); }
  
  public static void test() { 

	C c = new C();
	D d = new D();
	E e = new E();

	Tester.check( c instanceof A, "C should extend A");
	Tester.check( c instanceof B, "Declare parents threw away superclass info: C should extend B");
	
	Tester.check( d instanceof A, "D should extend A");
	Tester.check( e instanceof A, "E should extend A");
	   
  }
  
  
  static class A {};
  static class B extends A {};
  static class C extends B {};
  
  static class D {};
  static class E extends D {};
  
  static aspect Adoption {
  	declare parents : C extends A;
  	declare parents : D extends A;
  };
}