Change Signature: move lambda outside of parentheses if the arguments are reordered so that the lambda goes last
#KT-30128 Fixed
This commit is contained in:
committed by
klunnii
parent
912fd556e5
commit
82d81d5223
+9
@@ -31,11 +31,14 @@ import com.intellij.usageView.UsageViewDescriptor
|
||||
import com.intellij.util.containers.MultiMap
|
||||
import org.jetbrains.kotlin.idea.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeInsight.shorten.performDelayedRefactoringRequests
|
||||
import org.jetbrains.kotlin.idea.core.canMoveLambdaOutsideParentheses
|
||||
import org.jetbrains.kotlin.idea.core.moveFunctionLiteralOutsideParentheses
|
||||
import org.jetbrains.kotlin.idea.refactoring.broadcastRefactoringExit
|
||||
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.KotlinFunctionCallUsage
|
||||
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.KotlinImplicitReceiverUsage
|
||||
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.KotlinUsageInfo
|
||||
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.KotlinWrapperForJavaUsageInfos
|
||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||
import java.util.*
|
||||
|
||||
class KotlinChangeSignatureProcessor(
|
||||
@@ -136,6 +139,12 @@ class KotlinChangeSignatureProcessor(
|
||||
override fun performRefactoring(usages: Array<out UsageInfo>) {
|
||||
try {
|
||||
super.performRefactoring(usages)
|
||||
usages.forEach {
|
||||
val callExpression = it.element as? KtCallExpression ?: return@forEach
|
||||
if (callExpression.canMoveLambdaOutsideParentheses()) {
|
||||
callExpression.moveFunctionLiteralOutsideParentheses()
|
||||
}
|
||||
}
|
||||
performDelayedRefactoringRequests(myProject)
|
||||
} finally {
|
||||
changeInfo.invalidate()
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
fun <caret>foo(y: Int, x: () -> Unit) {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
foo(1) { 2 }
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
fun <caret>foo(x: () -> Unit, y: Int) {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
foo({ 2 }, 1)
|
||||
}
|
||||
+2
@@ -1618,4 +1618,6 @@ class KotlinChangeSignatureTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||
addParameter(parameterInfo)
|
||||
}
|
||||
}
|
||||
|
||||
fun testMoveLambdaParameterToLast() = doTest { swapParameters(0, 1) }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user