mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
introduce parameter: don't show conflicts between new param name and parameter to remove (IDEA-140607)
This commit is contained in:
+5
-1
@@ -30,7 +30,6 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.searches.MethodReferencesSearch;
|
||||
import com.intellij.psi.search.searches.OverridingMethodsSearch;
|
||||
import com.intellij.psi.util.PropertyUtil;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.BaseRefactoringProcessor;
|
||||
import com.intellij.refactoring.IntroduceParameterRefactoring;
|
||||
@@ -324,6 +323,11 @@ public class IntroduceParameterProcessor extends BaseRefactoringProcessor implem
|
||||
|
||||
@Override public void visitVariable(PsiVariable variable) {
|
||||
if (variable == myLocalVariable) return;
|
||||
if (variable instanceof PsiParameter && ((PsiParameter)variable).getDeclarationScope() == myMethodToReplaceIn) {
|
||||
if (getParametersToRemove().contains(myMethodToReplaceIn.getParameterList().getParameterIndex((PsiParameter)variable))){
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (myParameterName.equals(variable.getName())) {
|
||||
String descr = RefactoringBundle.message("there.is.already.a.0.it.will.conflict.with.an.introduced.parameter",
|
||||
RefactoringUIUtil.getDescription(variable, true));
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
class Test {
|
||||
public void foo(final String anObject) {
|
||||
bar(anObject);
|
||||
}
|
||||
void bar(String f){}
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
class Test {
|
||||
public void foo(Object anObject) {
|
||||
bar(anObject.toStrin<caret>g());
|
||||
}
|
||||
void bar(String f){}
|
||||
}
|
||||
@@ -314,6 +314,10 @@ public class IntroduceParameterTest extends LightRefactoringTestCase {
|
||||
doTest(IntroduceParameterRefactoring.REPLACE_FIELDS_WITH_GETTERS_ALL, true, false, true, false);
|
||||
}
|
||||
|
||||
public void testConflictingNameWithParameterToDelete() {
|
||||
doTest(IntroduceParameterRefactoring.REPLACE_FIELDS_WITH_GETTERS_ALL, true, false, true, false);
|
||||
}
|
||||
|
||||
private void doTestThroughHandler() {
|
||||
configureByFile("/refactoring/introduceParameter/before" + getTestName(false) + ".java");
|
||||
boolean enabled = true;
|
||||
|
||||
Reference in New Issue
Block a user