<compile files="ParentsAndPointcuts.java"/>
<run class="ParentsAndPointcuts"/>
</ajc-test>
+
+ <ajc-test dir="bugs" pr="43194"
+ title="Non-functional concretezation of ReferencePointcut">
+ <compile files="AdviceInteraction.java"/>
+ <run class="AdviceInteraction"/>
+ </ajc-test>
</suite>
--- /dev/null
+public class AdviceInteraction {
+ public static void main(String [] args) {
+ new C().m1();
+ }
+}
+
+class C {
+ public void m1() {}
+ public void m2() {}
+}
+
+aspect A {
+ pointcut exec1(C c): this(c) && execution(void m1());
+ pointcut execs(C c): exec1(c);
+
+ before (): execs(*) {}
+ before (C c): execs(c) {}
+
+ // This ordering works correctly
+ pointcut exec2(C c): this(c) && execution(void m2());
+ pointcut execs2(C c): exec2(c);
+
+ before (C c): execs2(c) {}
+ before (): execs2(*) {}
+}
\ No newline at end of file
//System.err.println("start: " + searchStart);
ResolvedTypeX[] parameterTypes = searchStart.getWorld().resolve(pointcutDec.getParameterTypes());
- arguments = arguments.resolveReferences(bindings);
+ TypePatternList arguments = this.arguments.resolveReferences(bindings);
IntMap newBindings = new IntMap();
for (int i=0,len=arguments.size(); i < len; i++) {