import java.util.*; /** * PR#479 * A variant of Hunter Kelly's bug PR#479. This * doesn't get his desired, but should compile. */ public class BindingArgumentsInWithincode { public static void main(String[] args) { org.aspectj.testing.Tester.check(true, "compiled"); } } class C { public void someMethod(String s) { new ArrayList().add(s+":"+s); } } aspect A { pointcut top(String s): withincode(void someMethod(String)) && args(s); pointcut method(Object o): call(* java.util.List.add(Object)) && args(o); /* * Won't capture what we're after * but it should compile */ before(String s, Object o): top(s) && method(o) {} }