diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt index d2da4e91e72..7861cf36dcf 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt @@ -94,11 +94,12 @@ fun KtCallExpression.moveFunctionLiteralOutsideParentheses() { val dummyCall = KtPsiFactory(this).createExpressionByPattern("foo()$0:'{}'", expression) as KtCallExpression val functionLiteralArgument = dummyCall.lambdaArguments.single() this.add(functionLiteralArgument) - if (argumentList.arguments.size > 1 || calleeExpression is KtCallExpression /* we should not remove empty parenthesis when callee is a call too - it won't parse */) { - argumentList.removeArgument(argument) + /* we should not remove empty parenthesis when callee is a call too - it won't parse */ + if (argumentList.arguments.size == 1 && calleeExpression !is KtCallExpression) { + argumentList.delete() } else { - argumentList.delete() + argumentList.removeArgument(argument) } }