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 5424f7086e51..9e94d3250263 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractJavaInplaceIntroducer.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractJavaInplaceIntroducer.java @@ -139,7 +139,7 @@ public abstract class AbstractJavaInplaceIntroducer extends AbstractInplaceIntro PsiExpression expression = refVariableElement instanceof PsiKeyword && refVariableElementParent instanceof PsiNewExpression ? (PsiNewExpression)refVariableElementParent : PsiTreeUtil.getParentOfType(refVariableElement, PsiReferenceExpression.class); - if (expression instanceof PsiReferenceExpression) { + if (expression instanceof PsiReferenceExpression && !(expression.getParent() instanceof PsiMethodCallExpression)) { final String referenceName = ((PsiReferenceExpression)expression).getReferenceName(); if (((PsiReferenceExpression)expression).resolve() == psiVariable || Comparing.strEqual(psiVariable.getName(), referenceName) || diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceParameter/paramNameEqMethodName.java b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/paramNameEqMethodName.java new file mode 100644 index 000000000000..8a724c88aa5b --- /dev/null +++ b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/paramNameEqMethodName.java @@ -0,0 +1,10 @@ +class A { + int f() { + return 0; + } + + void m() { + f(); + f(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceParameter/paramNameEqMethodName_after.java b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/paramNameEqMethodName_after.java new file mode 100644 index 000000000000..7216093f6f37 --- /dev/null +++ b/java/java-tests/testData/refactoring/inplaceIntroduceParameter/paramNameEqMethodName_after.java @@ -0,0 +1,9 @@ +class A { + int f() { + return 0; + } + + void m(int f) { + f(); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/InplaceIntroduceParameterTest.java b/java/java-tests/testSrc/com/intellij/refactoring/InplaceIntroduceParameterTest.java index 97c475910e9e..b5ec296e7bc5 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/InplaceIntroduceParameterTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/InplaceIntroduceParameterTest.java @@ -69,6 +69,14 @@ public class InplaceIntroduceParameterTest extends AbstractJavaInplaceIntroduceT }); } + public void testParamNameEqMethodName() throws Exception { + doTest(new Pass() { + @Override + public void pass(AbstractInplaceIntroducer inplaceIntroducePopup) { + } + }); + } + @Override protected String getBasePath() { return BASE_PATH;