diff --git a/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt b/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt index 96857a98568..ae057e40dd7 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt @@ -61,15 +61,13 @@ fun main(args: Array) { } } - templateGroups.groupByFileAndWrite(targetsToGenerate = targetBaseDirs.keys.toList()) { (target, source) -> + templateGroups.groupByFileAndWrite(targetsToGenerate = targetBaseDirs.keys) { (target, source) -> val targetDir = targetBaseDirs[target] ?: error("Target $target directory is not configured") - when (target) { - KotlinTarget.Common -> targetDir.resolve("_${source.name.capitalize()}.kt") - KotlinTarget.JVM -> targetDir.resolve("_${source.name.capitalize()}Jvm.kt") - KotlinTarget.JS -> targetDir.resolve("_${source.name.capitalize()}Js.kt") - KotlinTarget.JS_IR -> targetDir.resolve("_${source.name.capitalize()}Js.kt") - KotlinTarget.Native -> targetDir.resolve("_${source.name.capitalize()}Native.kt") + val platformSuffix = when (val platform = target.platform) { + Platform.Common -> "" + else -> platform.name.toLowerCase().capitalize() } + targetDir.resolve("_${source.name.capitalize()}$platformSuffix.kt") } } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Templates.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Templates.kt index deb9094b2ba..0b1ed525fec 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Templates.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Templates.kt @@ -53,7 +53,7 @@ interface MemberTemplate { /** Specifies which platforms this member template should be generated for */ fun platforms(vararg platforms: Platform) - fun instantiate(targets: List = KotlinTarget.values): Sequence + fun instantiate(targets: Collection = KotlinTarget.values): Sequence /** Registers parameterless member builder function */ fun builder(b: MemberBuildAction) @@ -105,7 +105,7 @@ abstract class MemberTemplateDefinition : MemberTemplate { } ?: this - override fun instantiate(targets: List): Sequence { + override fun instantiate(targets: Collection): Sequence { val resultingTargets = targets.filter { it.platform in allowedPlatforms } val resultingPlatforms = resultingTargets.map { it.platform }.distinct() val specificTargets by lazy { resultingTargets - KotlinTarget.Common } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt index 89c1bfbf764..33920dc83ac 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt @@ -39,7 +39,7 @@ data class TargetedSourceFile( @JvmName("groupByFileAndWriteGroups") fun Sequence.groupByFileAndWrite( - targetsToGenerate: List, + targetsToGenerate: Collection, fileNameBuilder: (TargetedSourceFile) -> File ) { flatMap { group -> @@ -51,7 +51,7 @@ fun Sequence.groupByFileAndWrite( @JvmName("groupByFileAndWriteTemplates") fun Sequence.groupByFileAndWrite( - targetsToGenerate: List, + targetsToGenerate: Collection, fileNameBuilder: (TargetedSourceFile) -> File ) { flatMap { it.instantiate(targetsToGenerate) }