diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetParameterUsage.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetParameterUsage.kt index cb98aea4bbb..a92346a0e2a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetParameterUsage.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetParameterUsage.kt @@ -56,7 +56,7 @@ public class JetParameterUsage( override fun getReplacementText(changeInfo: JetChangeInfo): String = if (changeInfo.receiverParameterInfo != parameterInfo) { parameterInfo.getInheritedName(containingFunction) - } else "this@${containingFunction.getOriginalFunctionDescriptor().getName().asString()}" + } else "this@${changeInfo.getNewName()}" } public class JetNonQualifiedOuterThisUsage( diff --git a/idea/testData/refactoring/changeSignature/ConvertToExtensionAndRenameAfter.kt b/idea/testData/refactoring/changeSignature/ConvertToExtensionAndRenameAfter.kt new file mode 100644 index 00000000000..fac6f1f9597 --- /dev/null +++ b/idea/testData/refactoring/changeSignature/ConvertToExtensionAndRenameAfter.kt @@ -0,0 +1,5 @@ +class C { + fun String.foo1() { + print(this) + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/changeSignature/ConvertToExtensionAndRenameBefore.kt b/idea/testData/refactoring/changeSignature/ConvertToExtensionAndRenameBefore.kt new file mode 100644 index 00000000000..9b4d27556b7 --- /dev/null +++ b/idea/testData/refactoring/changeSignature/ConvertToExtensionAndRenameBefore.kt @@ -0,0 +1,5 @@ +class C { + fun foo(p: String) { + print(p) + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java index bf024a24092..d5df2ec09de 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java @@ -772,7 +772,8 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase { JetPsiFactory psiFactory = new JetPsiFactory(getProject()); changeInfo.addParameter( new JetParameterInfo(changeInfo.getMethodDescriptor().getBaseDescriptor(), - -1, "s", KotlinBuiltIns.getInstance().getStringType(), null, psiFactory.createExpression("\"foo\""), JetValVar.None, null)); + -1, "s", KotlinBuiltIns.getInstance().getStringType(), null, psiFactory.createExpression("\"foo\""), + JetValVar.None, null)); doTest(changeInfo); } @@ -910,6 +911,13 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase { doTest(changeInfo); } + public void testConvertToExtensionAndRename() throws Exception { + JetChangeInfo changeInfo = getChangeInfo(); + changeInfo.setReceiverParameterInfo(changeInfo.getNewParameters()[0]); + changeInfo.setNewName("foo1"); + doTest(changeInfo); + } + @NotNull @Override protected String getTestDataPath() {