import org.aspectj.compiler.base.ast.*; aspect Wins { pointcut showError(ASTObject ast, String msg): target(ast) && call(void showError(msg)); void around(ASTObject ast, String msg): showError(ast, msg) { System.out.println("hi"); proceed(ast, msg); } } aspect Loses { pointcut showError(ASTObject ast, String msg): within(org.aspectj.compiler..*) && target(ast) && call(void AST.showError(msg)); void around(ASTObject ast, String msg): showError(ast, msg) { System.out.println("hi"); proceed(ast, msg); } }