Change signature: fix it works correctly when call site function has no value argument list
#KT-23510 Fixed
This commit is contained in:
committed by
Vladimir Dolzhenko
parent
223ed1ad60
commit
f487118be5
+5
@@ -75,6 +75,11 @@ class KotlinFunctionCallUsage(
|
||||
|
||||
changeNameIfNeeded(changeInfo, element)
|
||||
|
||||
if (element.valueArgumentList == null && changeInfo.isParameterSetOrOrderChanged && element.lambdaArguments.isNotEmpty()) {
|
||||
element.calleeExpression?.let {
|
||||
element.addAfter(KtPsiFactory(element).createCallArguments("()"), it)
|
||||
}
|
||||
}
|
||||
if (element.valueArgumentList != null) {
|
||||
if (changeInfo.isParameterSetOrOrderChanged) {
|
||||
result = updateArgumentsAndReceiver(changeInfo, element, allUsages)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
// "Remove parameter 'block'" "true"
|
||||
fun doNotUse1(<caret>block: () -> Unit) {}
|
||||
|
||||
fun useNotUse1() = doNotUse1 { }
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// "Remove parameter 'block'" "true"
|
||||
fun doNotUse1() {}
|
||||
|
||||
fun useNotUse1() = doNotUse1()
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
fun foo(block: () -> Unit, i: Int) {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
foo({}, 0)
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
fun <caret>foo(block: () -> Unit) {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
foo {}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
fun foo() {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
foo()
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
fun <caret>foo(block: () -> Unit) {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
foo {}
|
||||
}
|
||||
@@ -2339,6 +2339,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
||||
runTest("idea/testData/quickfix/changeSignature/removeFunctionFirstParameter.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("removeFunctionLastLambdaParameter.kt")
|
||||
public void testRemoveFunctionLastLambdaParameter() throws Exception {
|
||||
runTest("idea/testData/quickfix/changeSignature/removeFunctionLastLambdaParameter.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("removeFunctionSecondParameter1.kt")
|
||||
public void testRemoveFunctionSecondParameter1() throws Exception {
|
||||
runTest("idea/testData/quickfix/changeSignature/removeFunctionSecondParameter1.kt");
|
||||
|
||||
+14
@@ -1237,4 +1237,18 @@ class KotlinChangeSignatureTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||
fun testKotlinOverridingJavaWithDifferentParamName() = doJavaTest {
|
||||
newParameters.add(ParameterInfoImpl(-1, "n", PsiType.INT))
|
||||
}
|
||||
|
||||
fun testAddParameterAfterLambdaParameter() = doTest {
|
||||
addParameter(
|
||||
KotlinParameterInfo(
|
||||
callableDescriptor = originalBaseFunctionDescriptor,
|
||||
name = "i",
|
||||
originalTypeInfo = KotlinTypeInfo(false, BUILT_INS.intType),
|
||||
defaultValueForCall = KtPsiFactory(project).createExpression("0")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
fun testRemoveLambdaParameter2() = doTest { removeParameter(0) }
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user