aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs150/pr115235.aj
blob: 1d855e3cb2249c3c00ed9ec971623ceebd9edc92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
abstract aspect GenericAbstractAspect<T>{
	abstract protected pointcut pc();
	before() : pc() {}
}

aspect Concrete extends GenericAbstractAspect<Concrete> {
	// should get circular dependency error message from this
	protected pointcut pc() : pc();
}

aspect Concrete2 extends GenericAbstractAspect<Concrete2> {
	// this  should compile as expected
	protected pointcut pc() : p1();	
	pointcut p1() : call(void Concrete2.foo(..));
}

aspect Concrete3 extends GenericAbstractAspect<Concrete3> {
	// should get circular dependency error message from this
	protected pointcut pc() : pc1();
	pointcut pc1() : pc2();
	pointcut pc2() : pc();
}