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 ff6492ddd16..ef37361d85f 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 @@ -192,8 +192,9 @@ fun KtCallExpression.moveFunctionLiteralOutsideParentheses() { val expression = argument.getArgumentExpression()!! assert(expression.unpackFunctionLiteral() != null) - val dummyCall = KtPsiFactory(this).createExpressionByPattern("foo()$0:'{}'", expression) as KtCallExpression + val dummyCall = KtPsiFactory(project).createExpression("foo() {}") as KtCallExpression val functionLiteralArgument = dummyCall.lambdaArguments.single() + functionLiteralArgument.getArgumentExpression()?.replace(expression) this.add(functionLiteralArgument) /* we should not remove empty parenthesis when callee is a call too - it won't parse */ if (argumentList.arguments.size == 1 && calleeExpression !is KtCallExpression) {