Change Signature: Substitute new function name into generated this-expressions

#KT-7920 Fixed
This commit is contained in:
Alexey Sedunov
2015-06-04 14:20:04 +03:00
parent aa8adbeddc
commit 1d59c7e0e4
4 changed files with 20 additions and 2 deletions
@@ -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(
@@ -0,0 +1,5 @@
class C {
fun String.foo1() {
print(this)
}
}
@@ -0,0 +1,5 @@
class C {
fun <caret>foo(p: String) {
print(p)
}
}
@@ -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() {