aspect AspectForIfPCDExprJoinPointVisibleCE {
	// todo: derives from more general binding problems with named pointcuts
	pointcut errorAccessingThisJoinPointStaticPart () 
		: if (thisJoinPointStaticPart != null); // CE: can't bind name thisJoinPointStaticPart 
	pointcut errorAccessingThisJoinPoint () 
		: if (thisJoinPoint != null) && if(thisJoinPoint.getSignature() != null); // CE: can't bind name thisJoinPoint

	before () 
		: within(IfPCDExprJoinPointVisibleCE)
		&& errorAccessingThisJoinPoint() {
		System.err.println("before thisJoinPoint");
	}
	before () 
		: within(IfPCDExprJoinPointVisibleCE)
		&& errorAccessingThisJoinPointStaticPart() {
		System.err.println("before thisJoinPointStaticPart");
	}
}
public class IfPCDExprJoinPointVisibleCE {
	public static void main(String[] args) {
		System.err.println("ok - main running after ");
	}
}