1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
-
- import org.aspectj.testing.Tester;
- import org.aspectj.testing.Tester;
-
- public class IntroducedFieldsNotBinding {
- public static void main(String[]args) {
- TargetClass target = new TargetClass();
- // when the compiler passes the test, validate runtime
- int result = target.getField();
- Tester.checkEqual(result, 1, "1 != result: " + result);
- Tester.checkAllEvents();
- }
- static {
- Tester.event("execution of getField");
- }
- }
-
- class TargetClass { }
-
- class TargetClass2 { }
-
- aspect A {
- private String TargetClass2.s = "hi";
- private int TargetClass.field = 1;
- public int TargetClass.getField() {
- int i = field; // compiler error here
-
- String s = new TargetClass2().s;
- Tester.checkEqual(s, "hi");
-
- Runnable r = new Runnable() {
- public void run() {
- System.out.println("running: " + field);
- }
- };
- r.run();
-
- return i ;
- }
- after ()
- : execution(public int TargetClass.getField()) {
- Tester.expectEvent("execution of getField");
- }
- }
|