summaryrefslogtreecommitdiffstats
path: root/tests/new/introTypeMissing/InnerInFieldInit.java
blob: 3269fce3f99089ac2ba53f368f0968a974e69404 (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
import org.aspectj.testing.Tester; 
import org.aspectj.testing.Tester;

public class InnerInFieldInit {
    public static void main(String[] args) {
        Tester.expectEvent("innerfield");
        TargetClass me = new TargetClass();
        Tester.check(me.result, "me.result");
        Tester.checkAllEvents();
    }
}

interface Valid  { public boolean valid();}

aspect InnerInFieldInitAspect {
    /** @testcase  Introduced type unavailable to qualified new expressions in introduced field initializers */
    public boolean TargetClass.result =
        new Valid() {
                public boolean valid() {
                    InnerClass i = TargetClass.this.new InnerClass();
                    if (!i.valid()) Util.fail("this.new InnerClass()");
                    InnerClass j = getThis().new InnerClass();
                    if (!j.valid()) Util.fail("getThis().new InnerClass()");
                    Util.signal("innerfield");
                    return i.valid() && j.valid();
                }
            }.valid();
}