From e1ba3c1f0e0e583bea34ac92b905e6e40614fada Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Mar 2026 08:43:37 +0000 Subject: [PATCH] Add comment explaining Kotlin split() preserves trailing empty segments unlike Java Co-authored-by: Goooler <10363352+Goooler@users.noreply.github.com> --- .../jengelman/gradle/plugins/shadow/internal/Relocators.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Relocators.kt b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Relocators.kt index 1110c7fa8..7a74a216c 100644 --- a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Relocators.kt +++ b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Relocators.kt @@ -14,6 +14,9 @@ internal fun Set.mapName( onModified: () -> Unit, ): String { // Maybe a list of types. + // Unlike Java's String.split(), Kotlin's split() with the default limit = 0 preserves trailing + // empty segments, + // so descriptor strings ending with ';' (e.g. "Lorg/package/ClassA;") round-trip correctly. val newName = name.split(';').joinToString(";") { realMap(it, mapLiterals) } if (newName != name) { onModified()