diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java b/java/java-impl-refactorings/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java index 77636e434dd5..5cb1771c081a 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java @@ -30,6 +30,7 @@ import com.intellij.psi.search.SearchScope; import com.intellij.psi.util.PsiUtil; import com.intellij.refactoring.JavaRefactoringSettings; import com.intellij.refactoring.RefactoringActionHandler; +import com.intellij.refactoring.extractMethod.newImpl.inplace.EditorState; import com.intellij.refactoring.extractMethod.newImpl.inplace.InplaceExtractUtils; import com.intellij.refactoring.introduceVariable.IntroduceVariableBase; import com.intellij.refactoring.rename.inplace.TemplateInlayUtil; @@ -60,6 +61,7 @@ public final class InplaceIntroduceParameterPopup extends AbstractJavaInplaceInt private final PsiMethod myOriginalMethod; private PsiMethod myCreatedDelegate; + private final EditorState myEditorState; private EditorCodePreview myEditorPreview; @@ -82,6 +84,8 @@ public final class InplaceIntroduceParameterPopup extends AbstractJavaInplaceInt myMustBeFinal = mustBeFinal; myReplaceChoice = replaceChoice; + myEditorState = new EditorState(editor); + myPanel = new InplaceIntroduceParameterUI(project, localVar, expr, method, parametersToRemove, typeSelectorManager, myOccurrences) { @Override @@ -294,9 +298,8 @@ public final class InplaceIntroduceParameterPopup extends AbstractJavaInplaceInt } @Override - protected void restoreState(@NotNull PsiVariable psiField) { - super.restoreState(psiField); - removeDelegate(); + protected void performCleanup() { + myEditorState.revert(); } @Override diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceParameter/escapePositionOnLocal_after.java b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/escapePositionOnLocal_after.java index d7f32ec2711d..429535e3ac38 100644 --- a/java/java-tests/testData/refactoring/inplaceIntroduceParameter/escapePositionOnLocal_after.java +++ b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/escapePositionOnLocal_after.java @@ -1,5 +1,5 @@ class Test { void simpleMethod() { - boolean bb; + boolean bb; } } diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceParameter/escapePosition_after.java b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/escapePosition_after.java index fe58d5adc0c6..b1a33a400fb4 100644 --- a/java/java-tests/testData/refactoring/inplaceIntroduceParameter/escapePosition_after.java +++ b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/escapePosition_after.java @@ -1,6 +1,6 @@ class Test { void simpleMethod() { - System.out.println(""); + System.out.println(""); System.out.println(""); } } diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceParameter/revertImports.java b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/revertImports.java new file mode 100644 index 000000000000..020390eca116 --- /dev/null +++ b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/revertImports.java @@ -0,0 +1,5 @@ +class Test { + void simpleMethod() { + System.out.println("Collections.emptyList()".codePoints()); + } +} diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceParameter/revertImports_after.java b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/revertImports_after.java new file mode 100644 index 000000000000..cc24cc919632 --- /dev/null +++ b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/revertImports_after.java @@ -0,0 +1,5 @@ +class Test { + void simpleMethod() { + System.out.println("Collections.emptyList()".codePoints()); + } +} diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceParameterTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceParameterTest.java index d16183348b77..5f5dd468c899 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceParameterTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceParameterTest.java @@ -122,6 +122,10 @@ public class InplaceIntroduceParameterTest extends AbstractJavaInplaceIntroduceT doTestEscape(); } + public void testRevertImports(){ + doTestEscape(); + } + public void testExtractParamOverLocal() { doTest(null); }