Convert Function Type Parameter to Receiver: Drop redundant arrows
This commit is contained in:
+5
-1
@@ -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
|
||||
}
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
fun foo(n: Int, action: (<caret>Int) -> Int) = action(n)
|
||||
|
||||
fun test() {
|
||||
foo(1) { n -> n + 1 }
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
fun foo(n: Int, action: Int.(<caret>) -> Int) = n.action()
|
||||
|
||||
fun test() {
|
||||
foo(1) { this + 1 }
|
||||
}
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user