summaryrefslogtreecommitdiffstats
path: root/tests/new/DominatesTypePattern.java
blob: 9edc5d5ea9df1e7e410dd59493de1b4e17afa040 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import org.aspectj.testing.Tester;

/** @testcase subtype pattern in dominates should pick out aspect subtypes */
public class DominatesTypePattern {
    public static void main (String[] args) {
        String s = new C().method();
        Tester.check("pass".equals(s),
                     "\"pass\".equals(\"" + s + "\")");
    } 
}

class C {}

// works if A is specified explicitly
abstract aspect AA { declare precedence: AA, (AA+ && !AA); // error: should dominate A
    public String C.method() { return "pass"; }
}

aspect A extends AA { 
    public String C.method() { return "fail"; }
}