|
123456789101112131415161718192021222324252627282930313233343536 |
- import org.aspectj.testing.Tester;
-
- public class CflowInitInAspectVariantsAfter {
- public static void main(String[] args) {
- new C().a();
- Tester.checkAllEventsIgnoreDups();
- }
- static {
- Tester.expectEvent("cflow after pc()");
- Tester.expectEvent("cflow after execution(void C.a())");
- Tester.expectEvent("cflowbelow after pc()");
- Tester.expectEvent("cflowbelow after execution(void C.a())");
- }
- }
- class C {
- void a() {b();}
- private void b() {int i = 1;} // avoid later optimizations
- }
-
- aspect A {
-
- pointcut safety() : !within(A);
- pointcut pc() : execution(void C.a());
- after() : safety() && cflow(pc()) {
- Tester.event("cflow after pc()");
- }
- after() : safety() && cflow(execution(void C.a())) {
- Tester.event("cflow after execution(void C.a())");
- }
- after() : safety() && cflowbelow(pc()) {
- Tester.event("cflowbelow after pc()");
- }
- after() : safety() && cflowbelow(execution(void C.a())) {
- Tester.event("cflowbelow after execution(void C.a())");
- }
- }
|