From 27b76b477a430609b72a125fcfb878cced661b40 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 24 Sep 2013 18:16:32 +0200 Subject: [PATCH] inplace introducer: another case to restore expression (IDEA-113352) --- .../AbstractJavaInplaceIntroducer.java | 3 +++ .../inplaceIntroduceParameter/replaceAll3.java | 12 ++++++++++++ .../inplaceIntroduceParameter/replaceAll3_after.java | 12 ++++++++++++ .../refactoring/InplaceIntroduceParameterTest.java | 9 +++++++++ 4 files changed, 36 insertions(+) create mode 100644 java/java-tests/testData/refactoring/inplaceIntroduceParameter/replaceAll3.java create mode 100644 java/java-tests/testData/refactoring/inplaceIntroduceParameter/replaceAll3_after.java diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractJavaInplaceIntroducer.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractJavaInplaceIntroducer.java index 223a180a7914..dac214dd0803 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractJavaInplaceIntroducer.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractJavaInplaceIntroducer.java @@ -158,6 +158,9 @@ public abstract class AbstractJavaInplaceIntroducer extends AbstractInplaceIntro } if (parent instanceof PsiExpression) { expression = (PsiExpression)parent; + if (expression.getText().equals(exprText)) { + return expression; + } } else { return null; } diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceParameter/replaceAll3.java b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/replaceAll3.java new file mode 100644 index 000000000000..6c73f8359479 --- /dev/null +++ b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/replaceAll3.java @@ -0,0 +1,12 @@ +class C { + static enum E { + A + } + + void x(String s1, String s2) {} + + private void y() { + x(E.A.toString(), E.A.toString()); + + } +} diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceParameter/replaceAll3_after.java b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/replaceAll3_after.java new file mode 100644 index 000000000000..8d7703ca4d04 --- /dev/null +++ b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/replaceAll3_after.java @@ -0,0 +1,12 @@ +class C { + static enum E { + A + } + + void x(String s1, String s2) {} + + private void y(E a) { + x(a.toString(), a.toString()); + + } +} diff --git a/java/java-tests/testSrc/com/intellij/refactoring/InplaceIntroduceParameterTest.java b/java/java-tests/testSrc/com/intellij/refactoring/InplaceIntroduceParameterTest.java index b5ec296e7bc5..5be5dad1c1a1 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/InplaceIntroduceParameterTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/InplaceIntroduceParameterTest.java @@ -59,6 +59,15 @@ public class InplaceIntroduceParameterTest extends AbstractJavaInplaceIntroduceT }); } + public void testReplaceAll3() throws Exception { + doTest(new Pass() { + @Override + public void pass(AbstractInplaceIntroducer inplaceIntroduceFieldPopup) { + inplaceIntroduceFieldPopup.setReplaceAllOccurrences(true); + } + }); + } + public void testReplaceAllMethodCalls() throws Exception { doTest(new Pass() { @Override