aboutsummaryrefslogtreecommitdiffstats
path: root/tests/new/LocalClassClosingOverProceed.java
blob: 229be14b66772d555b98b77db0e447d43c94685d (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
37
import org.aspectj.testing.Tester; 

// bart.vanhaute@cs.kuleuven.ac.be conflated jitterbug
public class LocalClassClosingOverProceed {
    public static void main(String[] args) {
        new Target().method();
        Tester.checkAllEvents();
    }
    static {
        Tester.expectEvent("Target.method");
        Tester.expectEvent("before proceed");
        Tester.expectEvent("after proceed");
    }
}

class Target {
    public void method() {
        Tester.event("Target.method");
    }
}

aspect NamedLocalClass {

    /** @testcase PR#636 named local class closing over proceed() in around */
  void around(): execution(void Target.method())  {
      //Runnable r = new Runnable () {  
      class LocalClass {  
          public void run() {
              Tester.event("before proceed");
              proceed();
              Tester.event("after proceed");
          }
      };
      new LocalClass().run();
      //r.run();
  }
}