Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 180878 Details for
Bug 319069
[move member type] Convert to top level looses literal initializers when changing visibility
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Fix 2
319069_patch2.txt (text/plain), 7.72 KB, created by
Markus Keller
on 2010-10-14 09:52:48 EDT
(
hide
)
Description:
Fix 2
Filename:
MIME Type:
Creator:
Markus Keller
Created:
2010-10-14 09:52:48 EDT
Size:
7.72 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.ui >Index: core extension/org/eclipse/jdt/internal/corext/dom/VariableDeclarationRewrite.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/dom/VariableDeclarationRewrite.java,v >retrieving revision 1.8 >diff -u -r1.8 VariableDeclarationRewrite.java >--- core extension/org/eclipse/jdt/internal/corext/dom/VariableDeclarationRewrite.java 8 Oct 2010 16:32:42 -0000 1.8 >+++ core extension/org/eclipse/jdt/internal/corext/dom/VariableDeclarationRewrite.java 14 Oct 2010 13:47:47 -0000 >@@ -97,17 +97,22 @@ > boolean changeLast= fragmentsToChange.contains(lastFragment); > boolean changeCurrent= fragmentsToChange.contains(currentFragment); > if (changeLast != changeCurrent || lookup.containsKey(lastFragment)) { >- ModifierRewrite modifierRewrite; >+ ModifierRewrite modifierRewrite= null; > if (currentMovedFragment != null) { >- // Current fragment has already been moved. Need to put in the right modifiers (removing any existing ones). >- modifierRewrite= ModifierRewrite.create(rewrite, currentMovedFragment.fDeclaration); >- ListRewrite listRewrite= rewrite.getListRewrite(currentMovedFragment.fDeclaration, FieldDeclaration.MODIFIERS2_PROPERTY); >- List extendedList= listRewrite.getRewrittenList(); >- for (int i= 0; i < extendedList.size(); i++) { >- ASTNode curr= (ASTNode)extendedList.get(i); >- if (curr instanceof Modifier) >- rewrite.remove(curr, group); >+ // Current fragment has already been moved. >+ >+ if (currentMovedFragment.fUsesOriginalModifiers) { >+ // Need to put in the right modifiers (removing any existing ones). >+ modifierRewrite= ModifierRewrite.create(rewrite, currentMovedFragment.fDeclaration); >+ ListRewrite listRewrite= rewrite.getListRewrite(currentMovedFragment.fDeclaration, FieldDeclaration.MODIFIERS2_PROPERTY); >+ List extendedList= listRewrite.getRewrittenList(); >+ for (int i= 0; i < extendedList.size(); i++) { >+ ASTNode curr= (ASTNode)extendedList.get(i); >+ if (curr instanceof Modifier) >+ rewrite.remove(curr, group); >+ } > } >+ // otherwise, don't need to touch the modifiers, so leave modifierRewrite null > > } else { // need to split an existing field declaration > VariableDeclarationFragment moveTarget; >@@ -115,7 +120,7 @@ > > FieldDeclaration newStatement= (FieldDeclaration)ast.createInstance(FieldDeclaration.class); > rewrite.getListRewrite(newStatement, FieldDeclaration.FRAGMENTS_PROPERTY).insertLast(moveTarget, group); >- lookup.put(currentFragment, new MovedFragment(moveTarget, newStatement)); >+ lookup.put(currentFragment, new MovedFragment(moveTarget, newStatement, !changeCurrent)); > rewrite.set(newStatement, FieldDeclaration.TYPE_PROPERTY, rewrite.createCopyTarget(declarationNode.getType()), group); > > modifierRewrite= ModifierRewrite.create(rewrite, newStatement); >@@ -126,23 +131,27 @@ > lastStatement= newStatement; > } > >- if (changeCurrent) { >- int newModifiers= (declarationNode.getModifiers() & ~excludedModifiers) | includedModifiers; >- modifierRewrite.setModifiers(newModifiers, excludedModifiers, group); >- } else { >- int newModifiers= declarationNode.getModifiers(); >- modifierRewrite.setModifiers(newModifiers, Modifier.NONE, group); >+ if (modifierRewrite != null) { >+ if (changeCurrent) { >+ int newModifiers= (declarationNode.getModifiers() & ~excludedModifiers) | includedModifiers; >+ modifierRewrite.setModifiers(newModifiers, excludedModifiers, group); >+ } else { >+ int newModifiers= declarationNode.getModifiers(); >+ modifierRewrite.setModifiers(newModifiers, Modifier.NONE, group); >+ } > } > > } else if (fragmentsRewrite != null) { > VariableDeclarationFragment fragment0; >+ boolean usesOriginalModifiers= true; > if (currentMovedFragment != null) { > fragment0= currentMovedFragment.fMoveTarget; >+ usesOriginalModifiers= currentMovedFragment.fUsesOriginalModifiers; > rewrite.getListRewrite(currentMovedFragment.fDeclaration, FieldDeclaration.FRAGMENTS_PROPERTY).remove(fragment0, group); > } else { > fragment0= (VariableDeclarationFragment)rewrite.createMoveTarget(currentFragment); > } >- lookup.put(currentFragment, new MovedFragment(fragment0, lastStatement)); >+ lookup.put(currentFragment, new MovedFragment(fragment0, lastStatement, usesOriginalModifiers)); > fragmentsRewrite.insertLast(fragment0, group); > } > lastFragment= currentFragment; >@@ -152,10 +161,12 @@ > private static class MovedFragment { > final VariableDeclarationFragment fMoveTarget; > final ASTNode fDeclaration; >+ boolean fUsesOriginalModifiers; > >- public MovedFragment(VariableDeclarationFragment moveTarget, ASTNode declaration) { >+ public MovedFragment(VariableDeclarationFragment moveTarget, ASTNode declaration, boolean usesOriginalModifiers) { > fMoveTarget= moveTarget; > fDeclaration= declaration; >+ fUsesOriginalModifiers= usesOriginalModifiers; > } > } > >#P org.eclipse.jdt.ui.tests.refactoring >Index: resources/MoveInnerToTopLevel/test42/in/A.java >=================================================================== >RCS file: resources/MoveInnerToTopLevel/test42/in/A.java >diff -N resources/MoveInnerToTopLevel/test42/in/A.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ resources/MoveInnerToTopLevel/test42/in/A.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,11 @@ >+package p; >+ >+public class A { >+ private static String s1 = "1", s2 = "2", s3 = "3"; >+ >+ class B { >+ void foo() { >+ System.out.println(s3 + s1); >+ } >+ } >+} >Index: resources/MoveInnerToTopLevel/test42/out/A.java >=================================================================== >RCS file: resources/MoveInnerToTopLevel/test42/out/A.java >diff -N resources/MoveInnerToTopLevel/test42/out/A.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ resources/MoveInnerToTopLevel/test42/out/A.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package p; >+ >+public class A { >+ static String s1 = "1"; >+ private static String s2 = "2"; >+ static String s3 = "3"; >+} >Index: resources/MoveInnerToTopLevel/test42/out/B.java >=================================================================== >RCS file: resources/MoveInnerToTopLevel/test42/out/B.java >diff -N resources/MoveInnerToTopLevel/test42/out/B.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ resources/MoveInnerToTopLevel/test42/out/B.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,6 @@ >+package p; >+class B { >+ void foo() { >+ System.out.println(A.s3 + A.s1); >+ } >+} >\ No newline at end of file >Index: test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToTopLevelTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToTopLevelTests.java,v >retrieving revision 1.63 >diff -u -r1.63 MoveInnerToTopLevelTests.java >--- test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToTopLevelTests.java 8 Oct 2010 16:32:43 -0000 1.63 >+++ test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToTopLevelTests.java 14 Oct 2010 13:47:48 -0000 >@@ -372,6 +372,11 @@ > validatePassingTest("A", "B", "p", new String[] { "A"}, new String[] { "p"}, null, false, true, false, false); > } > >+ // change visibility: https://bugs.eclipse.org/319069 >+ public void test42() throws Exception { >+ validatePassingTest("A", "B", "p", new String[] { "A"}, new String[] { "p"}, null, false, true, false, false); >+ } >+ > // --- Non static > > public void test_nonstatic_0() throws Exception{
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 319069
:
178759
|
180499
| 180878