Convert lambda to reference intention: apply shorten references to callable reference only, not to the whole argument list
This commit is contained in:
@@ -201,7 +201,9 @@ class ConvertLambdaToReferenceIntention : SelfTargetingOffsetIndependentIntentio
|
|||||||
(lambdaArgument.replace(newArgumentList) as? KtElement)?.let { ShortenReferences.DEFAULT.process(it) }
|
(lambdaArgument.replace(newArgumentList) as? KtElement)?.let { ShortenReferences.DEFAULT.process(it) }
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
(argumentList.replace(newArgumentList) as? KtElement)?.let { ShortenReferences.DEFAULT.process(it) }
|
(argumentList.replace(newArgumentList) as? KtValueArgumentList)?.let {
|
||||||
|
ShortenReferences.DEFAULT.process(it.arguments.last())
|
||||||
|
}
|
||||||
lambdaArgument.delete()
|
lambdaArgument.delete()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
fun bar(s: String) = s.length
|
||||||
|
|
||||||
|
val x = listOf("Jack", "Tom").mapTo(kotlin.collections.hashSetOf<Int>()) <caret>{ w -> bar(w) }
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
fun bar(s: String) = s.length
|
||||||
|
|
||||||
|
val x = listOf("Jack", "Tom").mapTo(kotlin.collections.hashSetOf<Int>(), ::bar)
|
||||||
@@ -3994,6 +3994,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("mapToFqName.kt")
|
||||||
|
public void testMapToFqName() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertLambdaToReference/mapToFqName.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("member.kt")
|
@TestMetadata("member.kt")
|
||||||
public void testMember() throws Exception {
|
public void testMember() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertLambdaToReference/member.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertLambdaToReference/member.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user