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 75202 Details for
Bug 198586
[quick fix] Add cast casts to wrong type if incorrect type is in same package
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
fix
fix_198586.txt (text/plain), 4.98 KB, created by
Benno Baumgartner
on 2007-08-02 06:03:24 EDT
(
hide
)
Description:
fix
Filename:
MIME Type:
Creator:
Benno Baumgartner
Created:
2007-08-02 06:03:24 EDT
Size:
4.98 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.ui.tests >Index: ui/org/eclipse/jdt/ui/tests/quickfix/TypeMismatchQuickFixTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/TypeMismatchQuickFixTests.java,v >retrieving revision 1.24 >diff -u -r1.24 TypeMismatchQuickFixTests.java >--- ui/org/eclipse/jdt/ui/tests/quickfix/TypeMismatchQuickFixTests.java 27 Nov 2006 17:19:05 -0000 1.24 >+++ ui/org/eclipse/jdt/ui/tests/quickfix/TypeMismatchQuickFixTests.java 2 Aug 2007 10:04:47 -0000 >@@ -1778,5 +1778,53 @@ > > assertExpectedExistInProposals(proposals, expected); > } >+ >+ public void testTypeMismatchWithTypeInSamePackage() throws Exception { >+ // test for bug 198586 >+ IPackageFragment pack2= fSourceFolder.createPackageFragment("test2", false, null); >+ StringBuffer buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("public class E {}\n"); >+ pack2.createCompilationUnit("E.java", buf.toString(), false, null); >+ >+ IPackageFragment pack1= fSourceFolder.createPackageFragment("test1", false, null); >+ buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("public class E {}\n"); >+ pack1.createCompilationUnit("E.java", buf.toString(), false, null); >+ >+ buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("public class Test {\n"); >+ buf.append(" test2.E e2= new Object();\n"); >+ buf.append(" E e1;\n"); >+ buf.append("}\n"); >+ ICompilationUnit cu= pack1.createCompilationUnit("Test.java", buf.toString(), false, null); >+ >+ CompilationUnit astRoot= getASTRoot(cu); >+ ArrayList proposals= collectCorrections(cu, astRoot); >+ >+ assertCorrectLabels(proposals); >+ assertNumberOfProposals(proposals, 2); >+ >+ String[] expected= new String[2]; >+ buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("public class Test {\n"); >+ buf.append(" test2.E e2= (test2.E) new Object();\n"); >+ buf.append(" E e1;\n"); >+ buf.append("}\n"); >+ expected[0]= buf.toString(); >+ >+ buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("public class Test {\n"); >+ buf.append(" Object e2= new Object();\n"); >+ buf.append(" E e1;\n"); >+ buf.append("}\n"); >+ expected[1]= buf.toString(); >+ >+ assertExpectedExistInProposals(proposals, expected); >+ } > > } >#P org.eclipse.jdt.ui >Index: ui/org/eclipse/jdt/internal/ui/text/correction/CastCompletionProposal.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CastCompletionProposal.java,v >retrieving revision 1.15 >diff -u -r1.15 CastCompletionProposal.java >--- ui/org/eclipse/jdt/internal/ui/text/correction/CastCompletionProposal.java 28 Mar 2006 16:53:39 -0000 1.15 >+++ ui/org/eclipse/jdt/internal/ui/text/correction/CastCompletionProposal.java 2 Aug 2007 10:04:48 -0000 >@@ -14,7 +14,6 @@ > import org.eclipse.core.runtime.CoreException; > > import org.eclipse.jdt.core.ICompilationUnit; >- > import org.eclipse.jdt.core.dom.AST; > import org.eclipse.jdt.core.dom.ASTNode; > import org.eclipse.jdt.core.dom.CastExpression; >@@ -29,8 +28,11 @@ > import org.eclipse.jdt.core.dom.Type; > import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; > import org.eclipse.jdt.core.dom.rewrite.ImportRewrite; >+import org.eclipse.jdt.core.dom.rewrite.ImportRewrite.ImportRewriteContext; > >+import org.eclipse.jdt.internal.corext.codemanipulation.ContextSensitiveImportRewriteContext; > import org.eclipse.jdt.internal.corext.dom.ASTNodeFactory; >+ > import org.eclipse.jdt.internal.ui.JavaPluginImages; > > public class CastCompletionProposal extends LinkedCorrectionProposal { >@@ -56,11 +58,14 @@ > > private Type getNewCastTypeNode(ASTRewrite rewrite, ImportRewrite importRewrite) throws CoreException { > AST ast= rewrite.getAST(); >+ >+ ImportRewriteContext context= new ContextSensitiveImportRewriteContext((CompilationUnit) fNodeToCast.getRoot(), fNodeToCast.getStartPosition(), importRewrite); >+ > if (fCastType != null) { > if (fCastType instanceof ITypeBinding) { >- return importRewrite.addImport((ITypeBinding) fCastType, ast); >+ return importRewrite.addImport((ITypeBinding) fCastType, ast, context); > } else { >- String string= importRewrite.addImport((String) fCastType); >+ String string= importRewrite.addImport((String) fCastType, context); > return ASTNodeFactory.newType(ast, string); > } > } >@@ -83,7 +88,7 @@ > if (bindings.length > 0) { > ITypeBinding first= getCastFavorite(bindings, fNodeToCast.resolveTypeBinding()); > >- Type newTypeNode= importRewrite.addImport(first, ast); >+ Type newTypeNode= importRewrite.addImport(first, ast, context); > addLinkedPosition(rewrite.track(newTypeNode), true, "casttype"); //$NON-NLS-1$ > for (int i= 0; i < bindings.length; i++) { > addLinkedPositionProposal("casttype", bindings[i]); //$NON-NLS-1$
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 198586
: 75202