public class X {
	private Y y1;
	
	private Y y2;
	public Y getY1() {
		return y1;
	}
	public void setY1(Y y) {
		this.y1 = y;
	}
	public Y getY2() {
		return y2;
	}
	public void setY2(Y y) {
		this.y2 = y;
	}
}
Nothing special for class Y.
I have an aspect like this which is OK, but  access() point cut
 does not capture anything. Fine.
public aspect OneToOneAspect {
	pointcut access() : execution(Y X.a*());
	
	after() : access() {
		System.out.println("Access");
	}
	
}
But, if I add similar method signature like Y X.a*() but for declare @method, I had compilation error:
[error] The method 'public com.arizal.business.Y com.arizal.business.X.a*()' does not
 exist
The aspect after declare addition is the following:
public aspect OneToOneAspect {
	declare @method : public Y X.a*(): @OneToOneAccessor;
	
	pointcut access() : execution(Y X.a*());
	
	after() : access() {
		System.out.println("Access");
	}
	
}
Why the pointcut definition does not throw error while the
 declare method does ?  Is it expected ?
I would prefer to have compilation error in both cases. Is it possible ?
Cheers,
Anwar .