package parent;

import org.aspectj.testing.*;

/** @testcase PR#647 inner subaspects of an aspect with private pointcut */
public abstract aspect PrivatePointcut {
    public static void main (String[] args) {
        Tester.event("main");
        Tester.checkAllEvents();
    } 
    static {
        Tester.expectEvent("main");
        Tester.expectEvent("definePrivate");
    }
    
    before() : definePrivate() {
        Tester.event("definePrivate");
    }

    /** private must be implemented in defining class */
    private pointcut definePrivate() : execution(void PrivatePointcut.main(..));
}
aspect InnerChild extends PrivatePointcut {
}