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 47834 Details for
Bug 140565
[clean up] 'change all acces through instances' + 'remove unused imports' leads to code with fatal errors
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
fix and test for 3.2.1
fix_140565_321.txt (text/plain), 6.70 KB, created by
Benno Baumgartner
on 2006-08-14 05:26:42 EDT
(
hide
)
Description:
fix and test for 3.2.1
Filename:
MIME Type:
Creator:
Benno Baumgartner
Created:
2006-08-14 05:26:42 EDT
Size:
6.70 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.ui >Index: core extension/org/eclipse/jdt/internal/corext/fix/CodeStyleFix.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/fix/CodeStyleFix.java,v >retrieving revision 1.31 >diff -u -r1.31 CodeStyleFix.java >--- core extension/org/eclipse/jdt/internal/corext/fix/CodeStyleFix.java 25 Apr 2006 15:19:54 -0000 1.31 >+++ core extension/org/eclipse/jdt/internal/corext/fix/CodeStyleFix.java 14 Aug 2006 09:13:40 -0000 >@@ -11,6 +11,8 @@ > package org.eclipse.jdt.internal.corext.fix; > > import java.util.ArrayList; >+import java.util.Hashtable; >+import java.util.Iterator; > import java.util.List; > > import org.eclipse.text.edits.TextEditGroup; >@@ -451,20 +453,12 @@ > compilationUnit.accept(codeStyleVisitor); > } > >- if (changeNonStaticAccessToStatic || changeIndirectStaticAccessToDirect) { >- IProblem[] problems= compilationUnit.getProblems(); >- for (int i= 0; i < problems.length; i++) { >- IProblemLocation problem= new ProblemLocation(problems[i]); >- boolean isNonStaticAccess= changeNonStaticAccessToStatic && isNonStaticAccess(problem); >- boolean isIndirectStaticAccess= changeIndirectStaticAccessToDirect && isIndirectStaticAccess(problem); >- if (isNonStaticAccess || isIndirectStaticAccess) { >- ToStaticAccessOperation[] nonStaticAccessInformation= createNonStaticAccessResolveOperations(compilationUnit, problem); >- if (nonStaticAccessInformation != null) { >- operations.add(nonStaticAccessInformation[0]); >- } >- } >- } >- } >+ IProblem[] problems= compilationUnit.getProblems(); >+ IProblemLocation[] locations= new IProblemLocation[problems.length]; >+ for (int i= 0; i < problems.length; i++) { >+ locations[i]= new ProblemLocation(problems[i]); >+ } >+ addToStaticAccessOperations(compilationUnit, locations, changeNonStaticAccessToStatic, changeIndirectStaticAccessToDirect, operations); > > if (removeFieldQualifier || removeMethodQualifier) { > ThisQualifierVisitor visitor= new ThisQualifierVisitor(removeFieldQualifier, removeMethodQualifier, compilationUnit, operations); >@@ -498,6 +492,17 @@ > } > } > >+ addToStaticAccessOperations(compilationUnit, problems, changeNonStaticAccessToStatic, changeIndirectStaticAccessToDirect, operations); >+ >+ if (operations.isEmpty()) >+ return null; >+ >+ IFixRewriteOperation[] operationsArray= (IFixRewriteOperation[])operations.toArray(new IFixRewriteOperation[operations.size()]); >+ return new CodeStyleFix("", compilationUnit, operationsArray); //$NON-NLS-1$ >+ } >+ >+ private static void addToStaticAccessOperations(CompilationUnit compilationUnit, IProblemLocation[] problems, boolean changeNonStaticAccessToStatic, boolean changeIndirectStaticAccessToDirect, List result) { >+ Hashtable nonStaticAccessOps= new Hashtable(); > if (changeNonStaticAccessToStatic || changeIndirectStaticAccessToDirect) { > for (int i= 0; i < problems.length; i++) { > IProblemLocation problem= problems[i]; >@@ -506,17 +511,17 @@ > if (isNonStaticAccess || isIndirectStaticAccess) { > ToStaticAccessOperation[] nonStaticAccessInformation= createNonStaticAccessResolveOperations(compilationUnit, problem); > if (nonStaticAccessInformation != null) { >- operations.add(nonStaticAccessInformation[0]); >+ ToStaticAccessOperation op= nonStaticAccessInformation[0]; >+ nonStaticAccessOps.put(op.fQualifier, op); > } > } > } > } >- >- if (operations.isEmpty()) >- return null; >- >- IFixRewriteOperation[] operationsArray= (IFixRewriteOperation[])operations.toArray(new IFixRewriteOperation[operations.size()]); >- return new CodeStyleFix("", compilationUnit, operationsArray); //$NON-NLS-1$ >+ for (Iterator iter= nonStaticAccessOps.values().iterator(); iter.hasNext();) { >+ ToStaticAccessOperation op= (ToStaticAccessOperation)iter.next(); >+ if (!nonStaticAccessOps.containsKey(op.fQualifier.getParent())) >+ result.add(op); >+ } > } > > private static boolean isIndirectStaticAccess(IProblemLocation problem) { >#P org.eclipse.jdt.ui.tests >Index: ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTest.java,v >retrieving revision 1.47 >diff -u -r1.47 CleanUpTest.java >--- ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTest.java 5 May 2006 10:14:47 -0000 1.47 >+++ ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTest.java 14 Aug 2006 09:13:44 -0000 >@@ -3224,6 +3224,48 @@ > > assertRefactoringResultAsExpected(refactoring, new String[] {expected1}); > } >+ >+ public void testCodeStyle_Bug140565() throws Exception { >+ IPackageFragment pack1= fSourceFolder.createPackageFragment("test1", false, null); >+ StringBuffer buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("import java.io.*;\n"); >+ buf.append("public class E1 {\n"); >+ buf.append(" static class ClassA {static ClassB B;}\n"); >+ buf.append(" static class ClassB {static ClassC C;}\n"); >+ buf.append(" static class ClassC {static ClassD D;}\n"); >+ buf.append(" static class ClassD {}\n"); >+ buf.append("\n"); >+ buf.append(" public void foo() {\n"); >+ buf.append(" ClassA.B.C.D.toString();\n"); >+ buf.append(" }\n"); >+ buf.append("}\n"); >+ ICompilationUnit cu1= pack1.createCompilationUnit("E1.java", buf.toString(), false, null); >+ >+ CleanUpRefactoring refactoring= new CleanUpRefactoring(); >+ refactoring.addCompilationUnit(cu1); >+ >+ ICleanUp cleanUp1= new CodeStyleCleanUp(CodeStyleCleanUp.CHANGE_NON_STATIC_ACCESS_TO_STATIC); >+ ICleanUp cleanUp2= new UnusedCodeCleanUp(UnusedCodeCleanUp.REMOVE_UNUSED_IMPORTS); >+ refactoring.addCleanUp(cleanUp1); >+ refactoring.addCleanUp(cleanUp2); >+ >+ buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("public class E1 {\n"); >+ buf.append(" static class ClassA {static ClassB B;}\n"); >+ buf.append(" static class ClassB {static ClassC C;}\n"); >+ buf.append(" static class ClassC {static ClassD D;}\n"); >+ buf.append(" static class ClassD {}\n"); >+ buf.append("\n"); >+ buf.append(" public void foo() {\n"); >+ buf.append(" ClassB.C.D.toString();\n"); >+ buf.append(" }\n"); >+ buf.append("}\n"); >+ String expected1= buf.toString(); >+ >+ assertRefactoringResultAsExpected(refactoring, new String[] {expected1}); >+ } > > public void testJava50ForLoop01() throws Exception { > IPackageFragment pack1= fSourceFolder.createPackageFragment("test1", false, null);
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 140565
:
40585
|
40921
|
40922
|
41297
|
45660
| 47834