From 262b45405db09a74c3e1f55238ace596e7e97936 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Wed, 29 Mar 2023 10:59:47 +0200 Subject: [PATCH] [Gradle] Change signature of top-level await(Stage) to Stage.await() ^KT-56654 Verification Pending --- .../gradle/dsl/KotlinMultiplatformExtension.kt | 2 +- .../kotlin/gradle/dsl/KotlinProjectExtension.kt | 5 +---- .../kotlin/gradle/plugin/KotlinPluginLifecycle.kt | 12 ++++++------ .../plugin/mpp/GranularMetadataTransformation.kt | 2 +- .../gradle/plugin/mpp/KotlinMultiplatformPlugin.kt | 3 +-- .../gradle/plugin/mpp/KotlinSoftwareComponent.kt | 2 +- .../gradle/plugin/mpp/ProjectMetadataProviderImpl.kt | 2 +- .../gradle/plugin/sources/InternalKotlinSourceSet.kt | 2 +- .../targets/native/internal/commonizerTarget.kt | 4 ++-- .../jetbrains/kotlin/gradle/unitTests/FutureTest.kt | 6 +++--- .../kotlin/gradle/unitTests/InvokeWhenCreatedTest.kt | 2 +- .../KotlinAndroidTargetVariantTypeDslImplTest.kt | 4 ++-- .../gradle/unitTests/KotlinPluginLifecycleTest.kt | 4 ++-- 13 files changed, 23 insertions(+), 27 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension.kt index cef860e6c9d..7ccff51e3b0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension.kt @@ -27,7 +27,7 @@ abstract class KotlinMultiplatformExtension(project: Project) : final override val targets: NamedDomainObjectCollection = project.container(KotlinTarget::class.java) internal suspend fun awaitTargets(): NamedDomainObjectCollection { - await(AfterFinaliseDsl) + AfterFinaliseDsl.await() return targets } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt index 3adb121c95b..c233105783d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.gradle.dsl import org.gradle.api.Action -import org.gradle.api.GradleException import org.gradle.api.Named import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.Project @@ -30,9 +29,7 @@ import org.jetbrains.kotlin.gradle.utils.castIsolatedKotlinPluginClassLoaderAwar import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.konan.target.CompilerOutputKind import org.jetbrains.kotlin.statistics.metrics.StringMetrics -import java.util.concurrent.atomic.AtomicBoolean import javax.inject.Inject -import javax.inject.Provider import kotlin.reflect.KClass private const val KOTLIN_PROJECT_EXTENSION_NAME = "kotlin" @@ -154,7 +151,7 @@ open class KotlinProjectExtension @Inject constructor(project: Project) : Kotlin } internal suspend fun awaitSourceSets(): NamedDomainObjectContainer { - await(KotlinPluginLifecycle.Stage.AfterFinaliseDsl) + KotlinPluginLifecycle.Stage.AfterFinaliseDsl.await() return sourceSets } } 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 49867f331c6..d152174a3c4 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 @@ -132,11 +132,11 @@ internal suspend fun currentKotlinPluginLifecycle(): KotlinPluginLifecycle { } /** - * Suspends execution until we *at least* reached the specified [stage] - * This will return right away if the specified [stage] was already executed or we are currently executing the [stage] + * Suspends execution until we *at least* reached the specified [this@await] + * This will return right away if the specified [this@await] was already executed or we are currently executing the [this@await] */ -internal suspend fun await(stage: Stage) { - currentKotlinPluginLifecycle().await(stage) +internal suspend fun Stage.await() { + currentKotlinPluginLifecycle().await(this) } /** @@ -181,7 +181,7 @@ internal suspend fun Property.awaitFinalValue(): T? { return lifecycleAwareProperty.awaitFinalValue() } - await(Stage.FinaliseDsl) + Stage.FinaliseDsl.await() finalizeValue() return orNull } @@ -476,7 +476,7 @@ private class KotlinPluginLifecycleImpl(override val project: Project) : KotlinP ) : LifecycleAwareProperty { override suspend fun awaitFinalValue(): T? { - await(finaliseIn) + finaliseIn.await() return property.orNull } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GranularMetadataTransformation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GranularMetadataTransformation.kt index 889a6425de6..23e618ed062 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GranularMetadataTransformation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GranularMetadataTransformation.kt @@ -338,7 +338,7 @@ private fun Project.collectAllProjectsData(): Map, componentName: St sourcesJarTask( compilation.target.project, compilation.target.project.future { - await(KotlinPluginLifecycle.Stage.AfterFinaliseCompilations) + KotlinPluginLifecycle.Stage.AfterFinaliseCompilations.await() compilation.allKotlinSourceSets.associate { it.name to it.kotlin } }, componentName, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt index 6aab10099c4..93c78a5dffb 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt @@ -43,7 +43,7 @@ abstract class KotlinSoftwareComponent( private val metadataTarget get() = project.multiplatformExtension.metadata() as KotlinMetadataTarget private val _variants = project.future { - await(AfterFinaliseCompilations) + AfterFinaliseCompilations.await() kotlinTargets .filter { target -> target !is KotlinMetadataTarget } .flatMap { target -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt index 6d1b04cd06a..e1402d127ea 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt @@ -67,7 +67,7 @@ internal suspend fun Project.collectSourceSetMetadataOutputs(): Map { - await(KotlinPluginLifecycle.Stage.AfterFinaliseDsl) + KotlinPluginLifecycle.Stage.AfterFinaliseDsl.await() return sourceSets.mapNotNull { sourceSet -> val destination = when (val compilation = project.findMetadataCompilation(sourceSet) ?: return@mapNotNull null) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/InternalKotlinSourceSet.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/InternalKotlinSourceSet.kt index e8bfa6448bc..b34e4df695a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/InternalKotlinSourceSet.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/InternalKotlinSourceSet.kt @@ -26,6 +26,6 @@ internal interface InternalKotlinSourceSet : KotlinSourceSet { } internal suspend fun InternalKotlinSourceSet.awaitPlatformCompilations(): Set> { - await(KotlinPluginLifecycle.Stage.FinaliseRefinesEdges) + KotlinPluginLifecycle.Stage.FinaliseRefinesEdges.await() return compilations.filter { it !is KotlinMetadataCompilation }.toSet() } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/commonizerTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/commonizerTarget.kt index 6fb7ca860c4..b430142a4f3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/commonizerTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/commonizerTarget.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.gradle.utils.futureExtension import org.jetbrains.kotlin.tooling.core.UnsafeApi internal val KotlinSourceSet.commonizerTarget: Future by futureExtension { - await(KotlinPluginLifecycle.Stage.AfterFinaliseRefinesEdges) + KotlinPluginLifecycle.Stage.AfterFinaliseRefinesEdges.await() @OptIn(UnsafeApi::class) inferCommonizerTarget(this) } @@ -32,7 +32,7 @@ internal val KotlinSourceSet.sharedCommonizerTarget: Future.commonizerTarget: Future by futureExtension { - await(KotlinPluginLifecycle.Stage.AfterFinaliseRefinesEdges) + KotlinPluginLifecycle.Stage.AfterFinaliseRefinesEdges.await() @OptIn(UnsafeApi::class) inferCommonizerTarget(this) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/FutureTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/FutureTest.kt index 0924837fc6b..c4646a5a3bb 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/FutureTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/FutureTest.kt @@ -31,7 +31,7 @@ class FutureTest { @Test fun `test - simple deferred future`() = project.runLifecycleAwareTest { val future = project.future { - await(FinaliseDsl) + FinaliseDsl.await() 42 } @@ -44,7 +44,7 @@ class FutureTest { @Test fun `test - future depending on another future`() = project.runLifecycleAwareTest { val futureA = project.future { - await(FinaliseDsl) + FinaliseDsl.await() 42 } @@ -64,7 +64,7 @@ class FutureTest { project.evaluate() val future = project.future { - await(FinaliseDsl) + FinaliseDsl.await() 42 } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/InvokeWhenCreatedTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/InvokeWhenCreatedTest.kt index 3d3b8f52d3c..ca3856db48e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/InvokeWhenCreatedTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/InvokeWhenCreatedTest.kt @@ -78,7 +78,7 @@ class InvokeWhenCreatedTest { project.kotlinExtension.apply { val invocations = AtomicInteger(0) container.invokeWhenCreated("x") { assertEquals(1, invocations.incrementAndGet()) } - await(KotlinPluginLifecycle.Stage.last) + KotlinPluginLifecycle.Stage.last.await() assertEquals(0, invocations.get()) container.create("x") assertEquals(1, invocations.get()) diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinAndroidTargetVariantTypeDslImplTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinAndroidTargetVariantTypeDslImplTest.kt index bb9e15b004f..cd9c9d01ae9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinAndroidTargetVariantTypeDslImplTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinAndroidTargetVariantTypeDslImplTest.kt @@ -68,7 +68,7 @@ class KotlinAndroidTargetVariantTypeDslImplTest { instrumentedTest.targetHierarchy.module.set(KotlinTargetHierarchy.ModuleName.test) } - await(AfterFinaliseRefinesEdges) + AfterFinaliseRefinesEdges.await() assertEquals(setOf("commonTest"), kotlin.sourceSets.getByName("androidInstrumentedTest").dependsOn.map { it.name }.toSet()) assertEquals(setOf("commonTest"), kotlin.sourceSets.getByName("androidUnitTest").dependsOn.map { it.name }.toSet()) @@ -95,7 +95,7 @@ class KotlinAndroidTargetVariantTypeDslImplTest { withModule(KotlinTargetHierarchy.ModuleName("yyy")) } - await(AfterFinaliseRefinesEdges) + AfterFinaliseRefinesEdges.await() assertEquals(setOf("commonXxx"), kotlin.sourceSets.getByName("androidUnitTest").dependsOn.map { it.name }.toSet()) assertEquals(setOf("commonYyy"), kotlin.sourceSets.getByName("androidInstrumentedTest").dependsOn.map { it.name }.toSet()) diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinPluginLifecycleTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinPluginLifecycleTest.kt index b30621b0284..0d3b3aa2eb8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinPluginLifecycleTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinPluginLifecycleTest.kt @@ -371,9 +371,9 @@ class KotlinPluginLifecycleTest { } } - await(AfterEvaluateBuildscript.nextOrThrow.nextOrThrow) + AfterEvaluateBuildscript.nextOrThrow.nextOrThrow.await() assertEquals(1, actionInvocations.get()) - await(Stage.values.last()) + Stage.values.last().await() } /**