blob: b9c483105deb602be8c306ceb0b38821948b20b3 (
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
|
interface MyBase { void foo(); };
interface MyMarker extends MyBase { void bar(); }
abstract aspect Base<A extends MyBase> {
pointcut somePC() : execution(* A.*(..));
declare warning : somePC() : "a match";
}
abstract aspect Middle<B extends MyBase> extends Base<B> {}
aspect Sub extends Middle<MyMarker> {}
class C1 implements MyBase {
public void foo() {}
}
class C2 implements MyMarker {
public void foo() {} // CW L 25
public void bar() {} // CW L 27
}
|