[Gradle] Remove suspend functions from KotlinTargetHierarchyBuilder API
^KT-56654 Verification Pending
This commit is contained in:
committed by
Space Team
parent
9b8611ea9b
commit
b5d188d44e
@@ -1079,7 +1079,7 @@ public final class org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchy$Modu
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder {
|
||||
public abstract fun common (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun excludeCompilations (Lkotlin/jvm/functions/Function2;)V
|
||||
public abstract fun excludeCompilations (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun filterCompilations (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun group (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun withAndroid ()V
|
||||
@@ -1089,7 +1089,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetH
|
||||
public abstract fun withAndroidNativeX64 ()V
|
||||
public abstract fun withAndroidNativeX86 ()V
|
||||
public abstract fun withApple ()V
|
||||
public abstract fun withCompilations (Lkotlin/jvm/functions/Function2;)V
|
||||
public abstract fun withCompilations (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun withIos ()V
|
||||
public abstract fun withIosArm32 ()V
|
||||
public abstract fun withIosArm64 ()V
|
||||
@@ -1123,14 +1123,14 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetH
|
||||
public abstract fun withWatchosSimulatorArm64 ()V
|
||||
public abstract fun withWatchosX64 ()V
|
||||
public abstract fun withWatchosX86 ()V
|
||||
public abstract fun withoutCompilations (Lkotlin/jvm/functions/Function2;)V
|
||||
public abstract fun withoutCompilations (Lkotlin/jvm/functions/Function1;)V
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder$DefaultImpls {
|
||||
public static fun common (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder;Lkotlin/jvm/functions/Function1;)V
|
||||
public static fun filterCompilations (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder;Lkotlin/jvm/functions/Function1;)V
|
||||
public static synthetic fun group$default (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
|
||||
public static fun withoutCompilations (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder;Lkotlin/jvm/functions/Function2;)V
|
||||
public static fun withoutCompilations (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder;Lkotlin/jvm/functions/Function1;)V
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder$Root : org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder {
|
||||
@@ -1142,7 +1142,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetH
|
||||
public final class org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder$Root$DefaultImpls {
|
||||
public static fun common (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder$Root;Lkotlin/jvm/functions/Function1;)V
|
||||
public static fun filterCompilations (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder$Root;Lkotlin/jvm/functions/Function1;)V
|
||||
public static fun withoutCompilations (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder$Root;Lkotlin/jvm/functions/Function2;)V
|
||||
public static fun withoutCompilations (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder$Root;Lkotlin/jvm/functions/Function1;)V
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyDescriptor {
|
||||
|
||||
+3
-3
@@ -20,12 +20,12 @@ interface KotlinTargetHierarchyBuilder {
|
||||
fun group(name: String, build: KotlinTargetHierarchyBuilder.() -> Unit = {})
|
||||
|
||||
/* low-level APIs */
|
||||
fun withCompilations(predicate: suspend (KotlinCompilation<*>) -> Boolean)
|
||||
fun withCompilations(predicate: (KotlinCompilation<*>) -> Boolean)
|
||||
|
||||
fun excludeCompilations(predicate: suspend (KotlinCompilation<*>) -> Boolean)
|
||||
fun excludeCompilations(predicate: (KotlinCompilation<*>) -> Boolean)
|
||||
|
||||
@Deprecated("Use 'excludeCompilations' instead", ReplaceWith("excludeCompilations(predicate)"))
|
||||
fun withoutCompilations(predicate: suspend (KotlinCompilation<*>) -> Boolean) = excludeCompilations(predicate)
|
||||
fun withoutCompilations(predicate: (KotlinCompilation<*>) -> Boolean) = excludeCompilations(predicate)
|
||||
|
||||
@Deprecated("Use plain 'withoutCompilations(!predicate) instead'", ReplaceWith("withoutCompilations { !predicate(it) }"))
|
||||
fun filterCompilations(predicate: (KotlinCompilation<*>) -> Boolean) = excludeCompilations { !predicate(it) }
|
||||
|
||||
+16
-18
@@ -56,35 +56,26 @@ private class KotlinTargetHierarchyBuilderImplContext(private val compilation: K
|
||||
}
|
||||
|
||||
private class KotlinTargetHierarchyBuilderRootImpl(
|
||||
private val builder: KotlinTargetHierarchyBuilder
|
||||
private val builder: KotlinTargetHierarchyBuilderImpl
|
||||
) : KotlinTargetHierarchyBuilder.Root, KotlinTargetHierarchyBuilder by builder {
|
||||
|
||||
private var modules: Set<KotlinTargetHierarchy.ModuleName>? = null
|
||||
|
||||
override fun modules(vararg module: KotlinTargetHierarchy.ModuleName) {
|
||||
this.modules = module.toHashSet()
|
||||
builder.modules = module.toHashSet()
|
||||
}
|
||||
|
||||
override fun withModule(vararg module: KotlinTargetHierarchy.ModuleName) {
|
||||
this.modules = this.modules.orEmpty().plus(module)
|
||||
builder.modules = builder.modules.orEmpty().plus(module)
|
||||
}
|
||||
|
||||
override fun excludeModule(vararg module: KotlinTargetHierarchy.ModuleName) {
|
||||
val modules = module.toHashSet()
|
||||
if (modules.isEmpty()) return
|
||||
if (this.modules == null) return
|
||||
this.modules = this.modules.orEmpty() - modules
|
||||
}
|
||||
|
||||
init {
|
||||
builder.excludeCompilations exclude@{ compilation ->
|
||||
val modules = this.modules ?: return@exclude false
|
||||
val module = KotlinTargetHierarchy.ModuleName.orNull(compilation) ?: return@exclude false
|
||||
module !in modules
|
||||
}
|
||||
builder.modules = builder.modules.orEmpty() - modules
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private class KotlinTargetHierarchyBuilderImpl(
|
||||
val context: KotlinTargetHierarchyBuilderImplContext,
|
||||
val node: KotlinTargetHierarchyTree.Node,
|
||||
@@ -93,17 +84,19 @@ private class KotlinTargetHierarchyBuilderImpl(
|
||||
val children = mutableSetOf<KotlinTargetHierarchyBuilderImpl>()
|
||||
val childrenClosure get() = closure { it.children }
|
||||
|
||||
private var includePredicate: (suspend (KotlinCompilation<*>) -> Boolean) = { false }
|
||||
private var excludePredicate: (suspend (KotlinCompilation<*>) -> Boolean) = { false }
|
||||
var modules: Set<KotlinTargetHierarchy.ModuleName>? = null
|
||||
private var includePredicate: ((KotlinCompilation<*>) -> Boolean) = { false }
|
||||
private var excludePredicate: ((KotlinCompilation<*>) -> Boolean) = { false }
|
||||
|
||||
override fun withCompilations(predicate: suspend (KotlinCompilation<*>) -> Boolean) {
|
||||
|
||||
override fun withCompilations(predicate: (KotlinCompilation<*>) -> Boolean) {
|
||||
val previousIncludePredicate = this.includePredicate
|
||||
val previousExcludePredicate = this.excludePredicate
|
||||
this.includePredicate = { previousIncludePredicate(it) || predicate(it) }
|
||||
this.excludePredicate = { previousExcludePredicate(it) && !predicate(it) }
|
||||
}
|
||||
|
||||
override fun excludeCompilations(predicate: suspend (KotlinCompilation<*>) -> Boolean) {
|
||||
override fun excludeCompilations(predicate: (KotlinCompilation<*>) -> Boolean) {
|
||||
val previousIncludePredicate = this.includePredicate
|
||||
val previousExcludePredicate = this.excludePredicate
|
||||
this.includePredicate = { previousIncludePredicate(it) && !predicate(it) }
|
||||
@@ -111,6 +104,11 @@ private class KotlinTargetHierarchyBuilderImpl(
|
||||
}
|
||||
|
||||
suspend fun contains(compilation: KotlinCompilation<*>): Boolean {
|
||||
modules?.let { modules ->
|
||||
val module = KotlinTargetHierarchy.ModuleName.orNull(compilation) ?: return false
|
||||
if (module !in modules) return false
|
||||
}
|
||||
|
||||
/* Return eagerly, when compilation is explicitly excluded */
|
||||
if (excludePredicate(compilation)) return false
|
||||
|
||||
|
||||
Reference in New Issue
Block a user