Bug 269082 - [handles] References to inner classes as parameters
Summary: [handles] References to inner classes as parameters
Status: RESOLVED WORKSFORME
Alias: None
Product: AspectJ
Classification: Tools
Component: Build (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 major (vote)
Target Milestone: 1.6.9M1   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 268309
  Show dependency tree
 
Reported: 2009-03-17 16:31 EDT by Andrew Eisenberg CLA
Modified: 2010-04-16 13:10 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Eisenberg CLA 2009-03-17 16:31:51 EDT
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.
Comment 1 Andrew Eisenberg CLA 2009-03-17 16:40:36 EDT
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;
Comment 2 Andrew Clement CLA 2010-03-22 18:47:52 EDT
appears to have been fixed by the previous work done to ensure correct qualification based on source references.  regression test added.