From a672427e72664a7dfe73e0f9400111c33a0decbc Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Thu, 28 Nov 2019 20:19:55 +0300 Subject: [PATCH] Add invokeLater for inlining extra refactoring in branchedTransformations intension Fixed #EA214432 --- .../branchedTransformations/IfThenUtils.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/IfThenUtils.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/IfThenUtils.kt index eeac629565f..9e941d86b63 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/IfThenUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/IfThenUtils.kt @@ -5,8 +5,12 @@ package org.jetbrains.kotlin.idea.intentions.branchedTransformations +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.application.TransactionGuard +import com.intellij.openapi.command.CommandProcessor import com.intellij.openapi.editor.Editor import com.intellij.openapi.fileEditor.FileDocumentManager +import com.intellij.openapi.project.Project import com.intellij.openapi.util.TextRange import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.searches.ReferencesSearch @@ -149,7 +153,18 @@ fun KtNameReferenceExpression.inlineIfDeclaredLocallyAndOnlyUsedOnceWithPrompt(e val references = ReferencesSearch.search(declaration, scope).findAll() if (references.size == 1) { - KotlinInlineValHandler().inlineElement(this.project, editor, declaration) + if (!ApplicationManager.getApplication().isUnitTestMode) { + ApplicationManager.getApplication().invokeLater { + val handler = KotlinInlineValHandler() + if (declaration.isValid && handler.canInlineElement(declaration)) { + TransactionGuard.getInstance().submitTransactionAndWait { + handler.inlineElement(this.project, editor, declaration) + } + } + } + } else { + KotlinInlineValHandler().inlineElement(this.project, editor, declaration) + } } }