diff --git a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt index 4d23a1b3a87..77f9eb8dfc5 100644 --- a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt +++ b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt @@ -11,7 +11,6 @@ import com.intellij.openapi.components.ComponentManager import com.intellij.openapi.progress.impl.CancellationCheck import com.intellij.openapi.project.DumbService import com.intellij.openapi.project.Project -import com.intellij.openapi.util.Condition fun runReadAction(action: () -> T): T { return ApplicationManager.getApplication().runReadAction(action) @@ -53,9 +52,6 @@ inline fun executeOnPooledThread(crossinline action: () -> Unit) = inline fun invokeLater(crossinline action: () -> Unit) = ApplicationManager.getApplication().invokeLater { action() } -inline fun invokeLater(expired: Condition<*>, crossinline action: () -> Unit) = - ApplicationManager.getApplication().invokeLater({ action() }, expired) - inline fun isUnitTestMode(): Boolean = ApplicationManager.getApplication().isUnitTestMode inline fun ComponentManager.getServiceSafe(): T = diff --git a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt.193 b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt.193 index 01f484152d8..39e98ebdfad 100644 --- a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt.193 +++ b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt.193 @@ -11,7 +11,6 @@ import com.intellij.openapi.components.ComponentManager import com.intellij.openapi.project.Project import org.jetbrains.annotations.Nls import com.intellij.openapi.project.DumbService -import com.intellij.openapi.util.Condition fun runReadAction(action: () -> T): T { return ApplicationManager.getApplication().runReadAction(action) @@ -44,9 +43,6 @@ inline fun executeOnPooledThread(crossinline action: () -> Unit) = inline fun invokeLater(crossinline action: () -> Unit) = ApplicationManager.getApplication().invokeLater { action() } -inline fun invokeLater(expired: Condition<*>, crossinline action: () -> Unit) = - ApplicationManager.getApplication().invokeLater({ action() }, expired) - inline fun isUnitTestMode(): Boolean = ApplicationManager.getApplication().isUnitTestMode inline fun ComponentManager.getServiceSafe(): T = diff --git a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt.as40 b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt.as40 index af352d76fa1..aebd7211d12 100644 --- a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt.as40 +++ b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/util/ApplicationUtils.kt.as40 @@ -25,7 +25,6 @@ import com.intellij.openapi.progress.ProgressIndicatorProvider import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.project.Project import com.intellij.openapi.project.DumbService -import com.intellij.openapi.util.Condition fun runReadAction(action: () -> T): T { return ApplicationManager.getApplication().runReadAction(action) @@ -58,9 +57,6 @@ inline fun executeOnPooledThread(crossinline action: () -> Unit) = inline fun invokeLater(crossinline action: () -> Unit) = ApplicationManager.getApplication().invokeLater { action() } -inline fun invokeLater(expired: Condition<*>, crossinline action: () -> Unit) = - ApplicationManager.getApplication().invokeLater({ action() }, expired) - inline fun isUnitTestMode(): Boolean = ApplicationManager.getApplication().isUnitTestMode inline fun ComponentManager.getServiceSafe(): T = diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProcessor.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProcessor.kt index 3382f10964d..30017b9c4dd 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProcessor.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProcessor.kt @@ -5,23 +5,24 @@ package org.jetbrains.kotlin.idea.scripting.gradle.importing -import com.intellij.build.BuildContentManager import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId +import com.intellij.openapi.externalSystem.service.execution.ExternalSystemJdkUtil import com.intellij.openapi.project.Project +import com.intellij.openapi.projectRoots.JdkUtil import com.intellij.openapi.util.io.FileUtil.toSystemIndependentName import com.intellij.openapi.vfs.VfsUtil import org.gradle.tooling.model.kotlin.dsl.EditorReportSeverity import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel import org.jetbrains.kotlin.gradle.BrokenKotlinDslScriptsModel +import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.scripting.gradle.getGradleScriptInputsStamp import org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager -import org.jetbrains.kotlin.idea.util.application.invokeLater import org.jetbrains.plugins.gradle.model.BuildScriptClasspathModel import org.jetbrains.plugins.gradle.service.project.DefaultProjectResolverContext import org.jetbrains.plugins.gradle.service.project.ProjectResolverContext +import org.jetbrains.plugins.gradle.settings.GradleSettings import java.io.File - fun saveGradleBuildEnvironment(resolverCtx: ProjectResolverContext) { val task = resolverCtx.externalSystemTaskId val tasks = KotlinDslSyncListener.instance.tasks @@ -48,15 +49,14 @@ fun processScriptModel( resolverCtx: ProjectResolverContext, model: KotlinDslScriptsModel, projectName: String -): Boolean { - return if (model is BrokenKotlinDslScriptsModel) { +) { + if (model is BrokenKotlinDslScriptsModel) { LOG.error( "Couldn't get KotlinDslScriptsModel for $projectName:\n${model.message}\n${model.stackTrace}" ) - false } else { val task = resolverCtx.externalSystemTaskId - val project = task.findProject() ?: return false + val project = task.findProject() ?: return val models = model.toListOfScriptModels(project) val tasks = KotlinDslSyncListener.instance.tasks @@ -69,16 +69,17 @@ fun processScriptModel( val errors = models.collectErrors() if (errors.isNotEmpty()) { - sync?.let { - synchronized(it) { - it.failed = true + if (sync != null) { + synchronized(sync) { + sync.failed = true } } - invokeLater(project.disposed) { - BuildContentManager.getInstance(project).orCreateToolWindow.activate(null, false, false) - } + throw IllegalStateException( + KotlinIdeaGradleBundle.message("title.kotlin.build.script") + + ":\n" + + errors.joinToString("\n") { it.text + "\n" + it.details } + ) } - errors.isEmpty() } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt index 9d421f365b4..1dad8d7effa 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt @@ -42,9 +42,7 @@ class KotlinDslScriptModelContributor : ProjectModelContributor { if (kotlinDslScriptsModelImportSupported(resolverCtx.projectGradleVersion)) { val model = toolingModelsProvider.getProjectModel(it, KotlinDslScriptsModel::class.java) if (model != null) { - if (!processScriptModel(resolverCtx, model, projectIdentifier)) { - return@forEach - } + processScriptModel(resolverCtx, model, projectIdentifier) } }