Change Signature: Fix transfer of argument to receiver position
#KT-7987 Fixed
This commit is contained in:
+5
-7
@@ -415,14 +415,12 @@ public class JetFunctionCallUsage extends JetUsageInfo<JetCallElement> {
|
|||||||
ValueArgument receiverArgument = argumentMap.get(newReceiverInfo.getOldIndex());
|
ValueArgument receiverArgument = argumentMap.get(newReceiverInfo.getOldIndex());
|
||||||
JetExpression extensionReceiverExpression = receiverArgument != null ? receiverArgument.getArgumentExpression() : null;
|
JetExpression extensionReceiverExpression = receiverArgument != null ? receiverArgument.getArgumentExpression() : null;
|
||||||
JetExpression defaultValueForCall = newReceiverInfo.getDefaultValueForCall();
|
JetExpression defaultValueForCall = newReceiverInfo.getDefaultValueForCall();
|
||||||
String receiverText = extensionReceiverExpression != null
|
JetExpression receiver =
|
||||||
? extensionReceiverExpression.getText()
|
extensionReceiverExpression != null ? psiFactory.createExpression(extensionReceiverExpression.getText())
|
||||||
: defaultValueForCall != null ? defaultValueForCall.getText() : "";
|
: defaultValueForCall != null ? defaultValueForCall
|
||||||
if (receiverText.isEmpty()) {
|
: psiFactory.createExpression("_");
|
||||||
receiverText = "_";
|
|
||||||
}
|
|
||||||
|
|
||||||
replacingElement = psiFactory.createExpression(receiverText + "." + element.getText());
|
replacingElement = PsiPackage.createExpressionByPattern(psiFactory, "$0.$1", receiver, element);
|
||||||
}
|
}
|
||||||
|
|
||||||
newElement = (JetElement) elementToReplace.replace(replacingElement);
|
newElement = (JetElement) elementToReplace.replace(replacingElement);
|
||||||
|
|||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
fun f(list: List<Any>) {
|
||||||
|
list.filter { (it as String).foo() }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun String.foo(): Boolean = true
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
fun f(list: List<Any>) {
|
||||||
|
list.filter { foo(it as String) }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <caret>foo(s: String): Boolean = true
|
||||||
+6
@@ -924,6 +924,12 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testConvertParameterToReceiverAddParens() throws Exception {
|
||||||
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
|
changeInfo.setReceiverParameterInfo(changeInfo.getNewParameters()[0]);
|
||||||
|
doTest(changeInfo);
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
protected String getTestDataPath() {
|
protected String getTestDataPath() {
|
||||||
|
|||||||
Reference in New Issue
Block a user