Summary: | cannot code resolve on binary method with member type arguments | ||
---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | John Wiegand <John_Wiegand> |
Component: | Core | Assignee: | David Audel <david_audel> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P2 | ||
Version: | 2.0 | ||
Target Milestone: | 2.0 F4 | ||
Hardware: | PC | ||
OS: | Windows 2000 | ||
Whiteboard: |
David - pls double check the fix The fix is good. Fixed. Fix is quite trivial. If we don't fix it, then 'open on selection' (F3) fails to locate a method with member type arguments inside binaries. Open on selection is fairly centric and critical since it is used to locate the context of search actions in the editor. Removing 'FIXED' status, until it gets approved for F4 Verified. Works fine. No veto. Marking as fixed. Verified. |
F3 1. Build a workspace with all of the plugins as binary. 2. Select Type org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget (in the org.eclipse.jdt.debug plugin) and method setThreadStartHandler(). 3. If you press F3, you will get a beep. If you select Search->References- >Workspace, you will be told "The operation is unavailable on the current selection. Please select a valid Java element name". I believe the defect is in SelectionRequestor.acceptBinaryMethod(). My proposed fix is to convert the typeName argument to a $ name: String typeName = new String(parameterTypeNames[i]); if (typeName.indexOf('.') > 0) typeName = typeName.replace('.', '$'); parameterTypes[i]= Signature.createTypeSignature( pkg + typeName, true); If you find this fix safe, I believe it is a worthy candidate for F4 since it improves search quality with no performance penalty.