[Gradle] Remove InternalKotlinHierarchyTemplate interface (in favor of using Impl directly)

^KT-58676 Verification Pending
This commit is contained in:
Sebastian Sellmair
2023-06-22 09:50:55 +02:00
committed by Space Team
parent 6d4dbfae28
commit f26f3e0738
@@ -61,7 +61,7 @@ fun KotlinHierarchyTemplate(
@ExperimentalKotlinGradlePluginApi @ExperimentalKotlinGradlePluginApi
fun KotlinHierarchyTemplate.extend(describe: KotlinHierarchyBuilder.Root.() -> Unit): KotlinHierarchyTemplate { fun KotlinHierarchyTemplate.extend(describe: KotlinHierarchyBuilder.Root.() -> Unit): KotlinHierarchyTemplate {
return KotlinHierarchyTemplate { return KotlinHierarchyTemplate {
this@extend.internal.layout(this) this@extend.impl.layout(this)
describe() describe()
} }
} }
@@ -73,24 +73,19 @@ INTERNAL API
@InternalKotlinGradlePluginApi @InternalKotlinGradlePluginApi
@OptIn(ExperimentalKotlinGradlePluginApi::class) @OptIn(ExperimentalKotlinGradlePluginApi::class)
fun KotlinHierarchyBuilder.Root.applyHierarchyTemplate(template: KotlinHierarchyTemplate) { fun KotlinHierarchyBuilder.Root.applyHierarchyTemplate(template: KotlinHierarchyTemplate) {
template.internal.layout(this) template.impl.layout(this)
} }
internal val KotlinHierarchyTemplate.internal internal val KotlinHierarchyTemplate.impl
get() = when (this) { get() = when (this) {
is InternalKotlinHierarchyTemplate -> this is KotlinHierarchyTemplateImpl -> this
} }
@OptIn(ExperimentalKotlinGradlePluginApi::class)
internal interface InternalKotlinHierarchyTemplate : KotlinHierarchyTemplate {
fun layout(builder: KotlinHierarchyBuilder.Root)
}
@OptIn(ExperimentalKotlinGradlePluginApi::class) @OptIn(ExperimentalKotlinGradlePluginApi::class)
internal class KotlinHierarchyTemplateImpl( internal class KotlinHierarchyTemplateImpl(
private val describe: KotlinHierarchyBuilder.Root.() -> Unit, private val describe: KotlinHierarchyBuilder.Root.() -> Unit,
) : InternalKotlinHierarchyTemplate { ) : KotlinHierarchyTemplate {
override fun layout(builder: KotlinHierarchyBuilder.Root) { fun layout(builder: KotlinHierarchyBuilder.Root) {
describe(builder) describe(builder)
} }
} }