| Summary: | Move static members fails if "//" is before member [refactoring] | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] JDT | Reporter: | Markus Keller <markus.kell.r> | ||||||||
| Component: | UI | Assignee: | Markus Keller <markus.kell.r> | ||||||||
| Status: | RESOLVED FIXED | QA Contact: | |||||||||
| Severity: | normal | ||||||||||
| Priority: | P3 | CC: | akiezun | ||||||||
| Version: | 3.0 | ||||||||||
| Target Milestone: | 3.0 M3 | ||||||||||
| Hardware: | PC | ||||||||||
| OS: | Windows XP | ||||||||||
| Whiteboard: | |||||||||||
| Attachments: |
|
||||||||||
Created attachment 5798 [details]
Tests.
Tests are for this patch:
Index: MoveStaticMembersRefactoring.java
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.ui/core
refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/MoveStaticMembersRefactoring.java,v
retrieving revision 1.12
diff -u -r1.12 MoveStaticMembersRefactoring.java
--- MoveStaticMembersRefactoring.java 13 Aug 2003 17:30:30 -0000 1.12
+++ MoveStaticMembersRefactoring.java 19 Aug 2003 15:39:33 -0000
@@ -711,8 +711,8 @@
BodyDeclaration[] result= new BodyDeclaration[fMembers.length];
for (int i= 0; i < fMembers.length; i++) {
IMember member= fMembers[i];
- ASTNode node= NodeFinder.perform(fSource.root,
member.getSourceRange());
- result[i]= (BodyDeclaration)node;
+ ASTNode node= NodeFinder.perform(fSource.root,
member.getNameRange());
+ result[i]= (BodyDeclaration) (ASTNodes.getParent(node,
BodyDeclaration.class));
}
return result;
}
thanks Markus tests released - we won't be seeing this one again Created attachment 5811 [details]
Fix.
Uses the ASTNode of the member declaration to extract the updated member from
source (previous implementation used JavaElements, which is unnecessary
overhead).
Created attachment 5812 [details] Test Bug 41734 tells why test32 is disabled. |
Problem is that JavaElements and AstNodes have a different opinion whether //Comments should belong to an adjacent memeber or not. I'll attach tests. To reproduce: Move odd to B. A.java: package p; public class A { public final static String id= "Thing.id"; //$NON-NLS-1$ public final static String odd= "Thing.odd"; //$NON-NLS-1$ } B.java: package p; public class B { }