From 27600eecb354a4621b559c8c24fed24c368b2b08 Mon Sep 17 00:00:00 2001 From: Artem Daugel-Dauge Date: Wed, 28 Jun 2023 15:43:35 +0200 Subject: [PATCH] [Gradle] Make check for illegal target names case-insensitive ^KT-59733 Verification Pending --- .../gradle/plugin/hierarchy/defaultKotlinHierarchySetup.kt | 7 +++++-- .../DefaultHierarchySetupDiagnosticTest.kt | 2 +- .../KotlinDefaultHierarchyFallbackIllegalTargetNames.txt | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/hierarchy/defaultKotlinHierarchySetup.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/hierarchy/defaultKotlinHierarchySetup.kt index 37096fa3dfc..4745be37e3b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/hierarchy/defaultKotlinHierarchySetup.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/hierarchy/defaultKotlinHierarchySetup.kt @@ -85,8 +85,11 @@ private suspend fun Project.illegalTargetNamesUsed(): Set { val targetNames = targets.map { it.name }.toSet() return targets.flatMap { it.compilations }.mapNotNull { compilation -> val hierarchy = KotlinHierarchyTemplate.default.buildHierarchy(compilation) ?: return@mapNotNull null - val nodeNames = hierarchy.childrenClosure.mapNotNull { it.node as? KotlinHierarchy.Node.Group }.map { it.name }.toSet() - nodeNames.intersect(targetNames) + val nodeNames = hierarchy.childrenClosure + .mapNotNull { it.node as? KotlinHierarchy.Node.Group } + .map { it.name } + .toSortedSet(String.CASE_INSENSITIVE_ORDER) + targetNames.intersect(nodeNames) }.flatten().toSet() } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/diagnosticsTests/DefaultHierarchySetupDiagnosticTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/diagnosticsTests/DefaultHierarchySetupDiagnosticTest.kt index c22cb6bb01f..577389412f8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/diagnosticsTests/DefaultHierarchySetupDiagnosticTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/diagnosticsTests/DefaultHierarchySetupDiagnosticTest.kt @@ -39,7 +39,7 @@ class DefaultHierarchySetupDiagnosticTest { fun `test - warning KotlinTargetHierarchyFallbackIllegalTargetNames`() = buildProjectWithMPP().runLifecycleAwareTest { val kotlin = multiplatformExtension kotlin.linuxX64("linux") // <- illegal: Will clash with 'linux' group - kotlin.linuxArm64("native") // <-- illegal: Will clash with 'native' group + kotlin.linuxArm64("Native") // <-- illegal: Will clash with 'native' group kotlin.jvm() project.launchInStage(KotlinPluginLifecycle.Stage.ReadyForExecution) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/KotlinDefaultHierarchyFallbackIllegalTargetNames.txt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/KotlinDefaultHierarchyFallbackIllegalTargetNames.txt index fa3b0bacc3d..6993ac5cbda 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/KotlinDefaultHierarchyFallbackIllegalTargetNames.txt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/KotlinDefaultHierarchyFallbackIllegalTargetNames.txt @@ -1,6 +1,6 @@ [KotlinDefaultHierarchyFallbackIllegalTargetNames | WARNING] The Default Kotlin Hierarchy was not applied to 'root project 'test'': Illegal target names were found: -[native, linux] +[Native, linux] To suppress the 'Default Hierarchy Template' add 'kotlin.mpp.applyDefaultHierarchyTemplate=false'