diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/compile/KtCompilingExecutor.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/compile/KtCompilingExecutor.kt index da6c0fc92b4..281066bd375 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/compile/KtCompilingExecutor.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/compile/KtCompilingExecutor.kt @@ -23,7 +23,9 @@ import com.intellij.openapi.compiler.ex.CompilerPathsEx import com.intellij.openapi.module.Module import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.Task +import com.intellij.openapi.project.DumbService import com.intellij.openapi.roots.OrderEnumerator +import com.intellij.openapi.util.Computable import com.intellij.openapi.util.io.FileUtil import com.intellij.psi.PsiElement import org.jetbrains.kotlin.codegen.ClassBuilderFactories @@ -77,7 +79,11 @@ class KtCompilingExecutor(file: ScratchFile) : ScratchExecutor(file) { } try { - val tempDir = runReadAction { compileFileToTempDir(modifiedScratchSourceFile) } ?: return + val tempDir = DumbService.getInstance(project).runReadActionInSmartMode( + Computable { + compileFileToTempDir(modifiedScratchSourceFile) + } + ) ?: return try { val commandLine = createCommandLine(module, result.mainClassName, tempDir.path)