123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // pushes the limits of what ajc will accept as an unambiguous binding...
-
- aspect AmbiguousBindings {
-
- pointcut p1(Foo foo) : (call(* *(..)) && this(foo)) || (execution(* *(..)) && args(foo));
-
- pointcut p2(Foo foo) : (call(* m(..)) && this(foo)) || (call(* n(..)) && args(foo));
-
- pointcut p3(Foo foo) : (execution(* *(int,int)) && this(foo)) || (execution(* *(int)) && this(foo));
-
- pointcut p4(Foo foo) : (get(int a) && this(foo)) || (get(int b) && target(foo));
-
- pointcut p5(int x) : (set(int a) && args(x)) || (set(int b) && args(x));
-
- pointcut p6(Foo foo) : (within(Foo) && this(foo)) || (within(AmbiguousBindings) && args(foo));
-
- pointcut q1(Foo foo) : (call(* m(..)) && this(foo)) || (call(* m*(..)) && args(foo));
-
- pointcut q2(Foo foo) : (execution(* *(int,int)) && this(foo)) || (execution(* *(int,*)) && args(foo));
-
- pointcut q3(Foo foo) : (get(int a) && this(foo)) || (get(int a) && target(foo));
-
- pointcut q4(int x) : (set(int a) && args(x)) || (set(* *) && this(x));
-
- pointcut q5(Foo foo) : (within(Foo) && this(foo)) || (within(F*) && args(foo));
-
- // these should be good
- before(Foo foo) : p1(foo) {}
- before(Foo foo) : p2(foo) {}
- before(Foo foo) : p3(foo) {}
- before(Foo foo) : p4(foo) {}
- before(int z) : p5(z) {}
- before(Foo foo) : p6(foo) {}
-
- // these are all ambiguous
- before(Foo foo) : q1(foo) {}
- before(Foo foo) : q2(foo) {}
- before(Foo foo) : q3(foo) {}
- before(int x) : q4(x) {}
- before(Foo foo) : q5(foo) {}
-
- }
-
-
- class Foo {
-
- int a;
- int b;
-
- public void m(int x, int y) {
- a = y;
- n(x);
- }
-
- public void n(int x) {
- b = x;
- a = a * 2;
- }
-
- }
|