Community
Participate
Working Groups
The class package a; public class ClassUsingInner { class MyInner {} public void foo(MyInner i, Object h, String y) {} } AspectJ's handle is =Bug268309/src<a{ClassUsingInner.java[ClassUsingInner~foo~QClassUsingInner$MyInner;~QObject;~QString; JDT's handle is =Bug268309/src<a{ClassUsingInner.java[ClassUsingInner~foo~QMyInner;~QObject;~QString; The difference is that the first parameter in the AspectJ handle is qualified with the enclosing type, but shouldn't. This is the case unless it is qualified like that in the source code.
Just to be more explicit, if the method param type uses the enclosing class, then the handle should have it. And if the method param type uses the fully qualified name, then this too should be in the handle. public void foo(ClassUsingInner.MyInner i, Object h, String y) {} =Bug268309/src<a{ClassUsingInner.java[ClassUsingInner!3~foo~QClassUsingInner.MyInner;~QObject;~QString; public void foo(a.ClassUsingInner.MyInner i, Object h, String y) {} =Bug268309/src<a{ClassUsingInner.java[ClassUsingInner!2~foo~Qa.ClassUsingInner.MyInner;~QObject;~QString;
appears to have been fixed by the previous work done to ensure correct qualification based on source references. regression test added.