diff --git a/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java b/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java index 486258f275f4..673a71c56ac1 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java @@ -397,7 +397,7 @@ public class InlineUtil { } } } - return ref.replace(initializer); + return ref != initializer ? ref.replace(initializer) : initializer; } public enum TailCallType { diff --git a/java/java-tests/testData/refactoring/inlineMethod/UnresolvedArgPassedToSameNameParameter.java b/java/java-tests/testData/refactoring/inlineMethod/UnresolvedArgPassedToSameNameParameter.java new file mode 100644 index 000000000000..2f6d8d36d7da --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineMethod/UnresolvedArgPassedToSameNameParameter.java @@ -0,0 +1,9 @@ +class Test { + void foo(Object result) { + long h = result.hashCode(); + } + + void bar() { + foo(result); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/inlineMethod/UnresolvedArgPassedToSameNameParameter.java.after b/java/java-tests/testData/refactoring/inlineMethod/UnresolvedArgPassedToSameNameParameter.java.after new file mode 100644 index 000000000000..76fe5ce550f5 --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineMethod/UnresolvedArgPassedToSameNameParameter.java.after @@ -0,0 +1,9 @@ +class Test { + void foo(Object result) { + long h = result.hashCode(); + } + + void bar() { + long h = result.hashCode(); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java index 1b042fc62577..59081bafecaa 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java @@ -276,6 +276,10 @@ public class InlineMethodTest extends LightRefactoringTestCase { doTestInlineThisOnly(); } + public void testUnresolvedArgPassedToSameNameParameter() throws Exception { + doTestInlineThisOnly(); + } + private void doTestInlineThisOnly() { @NonNls String fileName = "/refactoring/inlineMethod/" + getTestName(false) + ".java"; configureByFile(fileName);