diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeParameterToReceiverIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeParameterToReceiverIntention.kt index d52d36ce449..aa47bb3beb9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeParameterToReceiverIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeParameterToReceiverIntention.kt @@ -123,7 +123,11 @@ class ConvertFunctionTypeParameterToReceiverIntention : SelfTargetingRangeIntent for (ref in ReferencesSearch.search(parameterToConvert, LocalSearchScope(expression))) { (ref.element as? KtSimpleNameExpression)?.replace(thisRefExpr) } - expression.functionLiteral.valueParameterList!!.removeParameter(parameterToConvert) + val lambda = expression.functionLiteral + lambda.valueParameterList!!.removeParameter(parameterToConvert) + if (lambda.valueParameters.isEmpty()) { + lambda.arrow?.delete() + } } return } diff --git a/idea/testData/intentions/convertFunctionTypeParameterToReceiver/singleExplicitParameter.kt b/idea/testData/intentions/convertFunctionTypeParameterToReceiver/singleExplicitParameter.kt new file mode 100644 index 00000000000..6f33f896557 --- /dev/null +++ b/idea/testData/intentions/convertFunctionTypeParameterToReceiver/singleExplicitParameter.kt @@ -0,0 +1,5 @@ +fun foo(n: Int, action: (Int) -> Int) = action(n) + +fun test() { + foo(1) { n -> n + 1 } +} \ No newline at end of file diff --git a/idea/testData/intentions/convertFunctionTypeParameterToReceiver/singleExplicitParameter.kt.after b/idea/testData/intentions/convertFunctionTypeParameterToReceiver/singleExplicitParameter.kt.after new file mode 100644 index 00000000000..1c26d5db846 --- /dev/null +++ b/idea/testData/intentions/convertFunctionTypeParameterToReceiver/singleExplicitParameter.kt.after @@ -0,0 +1,5 @@ +fun foo(n: Int, action: Int.() -> Int) = n.action() + +fun test() { + foo(1) { this + 1 } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index dc6e6f4ae00..90dd43222fd 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -4570,6 +4570,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertFunctionTypeParameterToReceiver/overrides.kt"); doTest(fileName); } + + @TestMetadata("singleExplicitParameter.kt") + public void testSingleExplicitParameter() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertFunctionTypeParameterToReceiver/singleExplicitParameter.kt"); + doTest(fileName); + } } @TestMetadata("idea/testData/intentions/convertFunctionTypeReceiverToParameter")