|
Lines 8-13
Link Here
|
| 8 |
* Contributors: |
8 |
* Contributors: |
| 9 |
* IBM Corporation - initial API and implementation |
9 |
* IBM Corporation - initial API and implementation |
| 10 |
* Stephan Herrmann <stephan@cs.tu-berlin.de> - [refactoring] pull-up with "use the destination type where possible" creates bogus import of nested type - https://bugs.eclipse.org/393932 |
10 |
* Stephan Herrmann <stephan@cs.tu-berlin.de> - [refactoring] pull-up with "use the destination type where possible" creates bogus import of nested type - https://bugs.eclipse.org/393932 |
|
|
11 |
* Samrat Dhillon <samrat.dhillon@gmail.com> - [use supertype] Inserts incorrect type argument when applied on a generic static method - - https://bugs.eclipse.org/397158 |
| 11 |
*******************************************************************************/ |
12 |
*******************************************************************************/ |
| 12 |
package org.eclipse.jdt.internal.corext.refactoring.structure.constraints; |
13 |
package org.eclipse.jdt.internal.corext.refactoring.structure.constraints; |
| 13 |
|
14 |
|
|
Lines 53-58
Link Here
|
| 53 |
import org.eclipse.jdt.core.JavaCore; |
54 |
import org.eclipse.jdt.core.JavaCore; |
| 54 |
import org.eclipse.jdt.core.JavaModelException; |
55 |
import org.eclipse.jdt.core.JavaModelException; |
| 55 |
import org.eclipse.jdt.core.WorkingCopyOwner; |
56 |
import org.eclipse.jdt.core.WorkingCopyOwner; |
|
|
57 |
import org.eclipse.jdt.core.dom.AST; |
| 56 |
import org.eclipse.jdt.core.dom.ASTNode; |
58 |
import org.eclipse.jdt.core.dom.ASTNode; |
| 57 |
import org.eclipse.jdt.core.dom.ASTParser; |
59 |
import org.eclipse.jdt.core.dom.ASTParser; |
| 58 |
import org.eclipse.jdt.core.dom.ASTRequestor; |
60 |
import org.eclipse.jdt.core.dom.ASTRequestor; |
|
Lines 68-73
Link Here
|
| 68 |
import org.eclipse.jdt.core.dom.IVariableBinding; |
70 |
import org.eclipse.jdt.core.dom.IVariableBinding; |
| 69 |
import org.eclipse.jdt.core.dom.MethodDeclaration; |
71 |
import org.eclipse.jdt.core.dom.MethodDeclaration; |
| 70 |
import org.eclipse.jdt.core.dom.NodeFinder; |
72 |
import org.eclipse.jdt.core.dom.NodeFinder; |
|
|
73 |
import org.eclipse.jdt.core.dom.ParameterizedType; |
| 71 |
import org.eclipse.jdt.core.dom.QualifiedName; |
74 |
import org.eclipse.jdt.core.dom.QualifiedName; |
| 72 |
import org.eclipse.jdt.core.dom.SimpleName; |
75 |
import org.eclipse.jdt.core.dom.SimpleName; |
| 73 |
import org.eclipse.jdt.core.dom.SingleVariableDeclaration; |
76 |
import org.eclipse.jdt.core.dom.SingleVariableDeclaration; |
|
Lines 89-94
Link Here
|
| 89 |
import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings; |
92 |
import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings; |
| 90 |
import org.eclipse.jdt.internal.corext.codemanipulation.ContextSensitiveImportRewriteContext; |
93 |
import org.eclipse.jdt.internal.corext.codemanipulation.ContextSensitiveImportRewriteContext; |
| 91 |
import org.eclipse.jdt.internal.corext.codemanipulation.StubUtility; |
94 |
import org.eclipse.jdt.internal.corext.codemanipulation.StubUtility; |
|
|
95 |
import org.eclipse.jdt.internal.corext.dom.ASTNodeFactory; |
| 92 |
import org.eclipse.jdt.internal.corext.dom.ASTNodes; |
96 |
import org.eclipse.jdt.internal.corext.dom.ASTNodes; |
| 93 |
import org.eclipse.jdt.internal.corext.refactoring.JDTRefactoringDescriptorComment; |
97 |
import org.eclipse.jdt.internal.corext.refactoring.JDTRefactoringDescriptorComment; |
| 94 |
import org.eclipse.jdt.internal.corext.refactoring.RefactoringCoreMessages; |
98 |
import org.eclipse.jdt.internal.corext.refactoring.RefactoringCoreMessages; |
|
Lines 144-151
Link Here
|
| 144 |
*/ |
148 |
*/ |
| 145 |
protected static ASTNode createCorrespondingNode(final CompilationUnitRewrite rewrite, final TType type, ASTNode node) { |
149 |
protected static ASTNode createCorrespondingNode(final CompilationUnitRewrite rewrite, final TType type, ASTNode node) { |
| 146 |
ImportRewrite importRewrite= rewrite.getImportRewrite(); |
150 |
ImportRewrite importRewrite= rewrite.getImportRewrite(); |
| 147 |
ImportRewriteContext context = new ContextSensitiveImportRewriteContext(node, importRewrite); |
151 |
ImportRewriteContext context = new ContextSensitiveImportRewriteContext(node, importRewrite); |
| 148 |
return importRewrite.addImportFromSignature(new BindingKey(type.getBindingKey()).toSignature(), rewrite.getAST(), context); |
152 |
if(type instanceof org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.ParameterizedType && node instanceof ParameterizedType){ |
|
|
153 |
AST ast = node.getAST(); |
| 154 |
Type baseType= ast.newSimpleType(ASTNodeFactory.newName(ast, type.getErasure().getName())); |
| 155 |
ParameterizedType paramType= ast.newParameterizedType(baseType); |
| 156 |
|
| 157 |
ParameterizedType subType = (ParameterizedType) node; |
| 158 |
List<Type> typeArgs = subType.typeArguments(); |
| 159 |
for(Type param: typeArgs){ |
| 160 |
paramType.typeArguments().add(ast.newSimpleType(ast.newSimpleName(param.toString()))); |
| 161 |
} |
| 162 |
importRewrite.addImportFromSignature(new BindingKey(type.getErasure().getBindingKey()).toSignature(), rewrite.getAST(), context); |
| 163 |
return paramType; |
| 164 |
}else{ |
| 165 |
return importRewrite.addImportFromSignature(new BindingKey(type.getBindingKey()).toSignature(), rewrite.getAST(), context); |
| 166 |
} |
| 149 |
} |
167 |
} |
| 150 |
|
168 |
|
| 151 |
/** Should type occurrences on instanceof's also be rewritten? */ |
169 |
/** Should type occurrences on instanceof's also be rewritten? */ |