From f50e28903378ee399d86ee74ebe74a2b3a0c147d Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Wed, 6 May 2020 17:39:50 +0700 Subject: [PATCH] fix psi tree in `moveFunctionLiteralOutsideParentheses` --- .../src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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) {