diff --git a/java/java-impl/src/com/intellij/refactoring/makeStatic/MakeMethodStaticProcessor.java b/java/java-impl/src/com/intellij/refactoring/makeStatic/MakeMethodStaticProcessor.java index 0f31060bd355..2650dca49507 100644 --- a/java/java-impl/src/com/intellij/refactoring/makeStatic/MakeMethodStaticProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/makeStatic/MakeMethodStaticProcessor.java @@ -25,7 +25,10 @@ import com.intellij.psi.javadoc.PsiDocTag; import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtil; -import com.intellij.refactoring.changeSignature.*; +import com.intellij.refactoring.changeSignature.JavaChangeInfoImpl; +import com.intellij.refactoring.changeSignature.JavaChangeSignatureUsageProcessor; +import com.intellij.refactoring.changeSignature.ParameterInfoImpl; +import com.intellij.refactoring.changeSignature.ThrownExceptionInfo; import com.intellij.refactoring.changeSignature.inCallers.JavaCallerChooser; import com.intellij.refactoring.util.CanonicalTypes; import com.intellij.refactoring.util.RefactoringUtil; @@ -37,7 +40,10 @@ import com.intellij.util.VisibilityUtil; import com.intellij.util.containers.MultiMap; import com.intellij.util.ui.tree.TreeUtil; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; /** * @author dsl @@ -139,10 +145,6 @@ public class MakeMethodStaticProcessor extends MakeMethodOrClassStaticProcessor< List params = new ArrayList(); PsiParameter[] parameters = myMember.getParameterList().getParameters(); - for (int i = 0; i < parameters.length; i++) { - params.add(new ParameterInfoImpl(i)); - } - if (mySettings.isMakeClassParameter()) { params.add(new ParameterInfoImpl(-1, mySettings.getClassParameterName(), factory.createType(containingClass, PsiSubstitutor.EMPTY), "this")); @@ -154,6 +156,10 @@ public class MakeMethodStaticProcessor extends MakeMethodOrClassStaticProcessor< } } + for (int i = 0; i < parameters.length; i++) { + params.add(new ParameterInfoImpl(i)); + } + final PsiType returnType = myMember.getReturnType(); LOG.assertTrue(returnType != null); JavaChangeSignatureUsageProcessor.generateDelegate(new JavaChangeInfoImpl(VisibilityUtil.getVisibilityModifier(myMember.getModifierList()), diff --git a/java/java-tests/testData/refactoring/makeMethodStatic/afterDelegatePlace.java b/java/java-tests/testData/refactoring/makeMethodStatic/afterDelegatePlace.java new file mode 100644 index 000000000000..3548ecd5f49a --- /dev/null +++ b/java/java-tests/testData/refactoring/makeMethodStatic/afterDelegatePlace.java @@ -0,0 +1,10 @@ +public class Test { + int i; + + public void foo(int j) { + foo(this, j); + } + + public static void foo(Test anObject, int j) { + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/makeMethodStatic/beforeDelegatePlace.java b/java/java-tests/testData/refactoring/makeMethodStatic/beforeDelegatePlace.java new file mode 100644 index 000000000000..9a0281399d03 --- /dev/null +++ b/java/java-tests/testData/refactoring/makeMethodStatic/beforeDelegatePlace.java @@ -0,0 +1,5 @@ +public class Test { + int i; + public void foo(int j) { + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/MakeMethodStaticTest.java b/java/java-tests/testSrc/com/intellij/refactoring/MakeMethodStaticTest.java index 77ef51199ab3..eb036f11df19 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/MakeMethodStaticTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/MakeMethodStaticTest.java @@ -211,13 +211,21 @@ public class MakeMethodStaticTest extends LightRefactoringTestCase { doTest(); } + public void testDelegatePlace() throws Exception { + doTest(true, true); + } + private void doTest() throws Exception { doTest(false); } private void doTest(final boolean addClassParameter) throws Exception { + doTest(addClassParameter, false); + } + + private void doTest(final boolean addClassParameter, boolean delegate) throws Exception { configureByFile("/refactoring/makeMethodStatic/before" + getTestName(false) + ".java"); - perform(addClassParameter); + perform(addClassParameter, delegate); checkResultByFile("/refactoring/makeMethodStatic/after" + getTestName(false) + ".java"); } @@ -230,6 +238,10 @@ public class MakeMethodStaticTest extends LightRefactoringTestCase { private static void perform(boolean addClassParameter) { + perform(addClassParameter, false); + } + + private static void perform(boolean addClassParameter, boolean delegate) { PsiElement element = TargetElementUtil.findTargetElement(myEditor, TargetElementUtil.ELEMENT_NAME_ACCEPTED); assertTrue(element instanceof PsiMethod); PsiMethod method = (PsiMethod) element; @@ -237,7 +249,7 @@ public class MakeMethodStaticTest extends LightRefactoringTestCase { new MakeMethodStaticProcessor( getProject(), method, - new Settings(true, addClassParameter ? "anObject" : null, null)).run(); + new Settings(true, addClassParameter ? "anObject" : null, null, delegate)).run(); } private static void performWithFields() {