From c05b86dc7cd700ef7a44b98ebe69e9ac7f67f41b Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Fri, 5 May 2023 11:42:01 +0200 Subject: [PATCH] [Gradle] KotlinPluginLifecycle: Do not enter AfterBuildscriptEvaluate stage on failures KT-58275 --- .../kotlin/gradle/plugin/KotlinPluginLifecycle.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginLifecycle.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginLifecycle.kt index 3e41c316c88..c2ef726c098 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginLifecycle.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginLifecycle.kt @@ -451,6 +451,14 @@ private class KotlinPluginLifecycleImpl(override val project: Project) : KotlinP loopIfNecessary() project.whenEvaluated { + /* Check for failures happening during buildscript evaluation */ + project.failures.let { failures -> + if (failures.isNotEmpty()) { + finishWithFailures(failures) + return@whenEvaluated + } + } + assert(enqueuedActions.getValue(stage).isEmpty()) { "Expected empty queue from '$stage'" } stage = stage.nextOrThrow executeCurrentStageAndScheduleNext()