blob: 51093d86c9383e9a215e544b2eb7a4b2732210a7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
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())");
}
}
|