From 2307692064058ec947cdf9622419efa792effdc4 Mon Sep 17 00:00:00 2001 From: Abduqodiri Qurbonzoda Date: Fri, 24 Apr 2020 05:29:15 +0300 Subject: [PATCH] Remove String.format with non-null locale Introducing new overloads with @SinceKotlin(1.4) annotation and marking the old ones @LowPriorityInOverloadResolution breaks all code that uses the format(locale, args) overload with -api-version 1.3. Because the low priority of the non-1.4 version makes format(args) preferable in all cases. For example, "%02X".format(Locale.ROOT, 1) throws IllegalFormatConversionException: x != java.util.Locale. --- .../stdlib/jvm/src/kotlin/text/StringsJVM.kt | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt b/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt index 7bb6b735f3a..bd05adbd474 100644 --- a/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt +++ b/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt @@ -15,7 +15,6 @@ import java.nio.charset.Charset import java.nio.charset.CodingErrorAction import java.util.Locale import java.util.regex.Pattern -import kotlin.internal.LowPriorityInOverloadResolution /** @@ -285,38 +284,17 @@ public inline fun String.format(vararg args: Any?): String = java.lang.String.fo @kotlin.internal.InlineOnly public inline fun String.Companion.format(format: String, vararg args: Any?): String = java.lang.String.format(format, *args) -/** - * Uses this string as a format string and returns a string obtained by substituting the specified arguments, - * using the specified locale. - */ -@LowPriorityInOverloadResolution -@kotlin.internal.InlineOnly -public inline fun String.format(locale: Locale, vararg args: Any?): String = java.lang.String.format(locale, this, *args) - /** * Uses this string as a format string and returns a string obtained by substituting the specified arguments, * using the specified locale. If [locale] is `null` then no localization is applied. */ -@SinceKotlin("1.4") -@JvmName("formatNullable") @kotlin.internal.InlineOnly public inline fun String.format(locale: Locale?, vararg args: Any?): String = java.lang.String.format(locale, this, *args) -/** - * Uses the provided [format] as a format string and returns a string obtained by substituting the specified arguments, - * using the specified locale. - */ -@LowPriorityInOverloadResolution -@kotlin.internal.InlineOnly -public inline fun String.Companion.format(locale: Locale, format: String, vararg args: Any?): String = - java.lang.String.format(locale, format, *args) - /** * Uses the provided [format] as a format string and returns a string obtained by substituting the specified arguments, * using the specified locale. If [locale] is `null` then no localization is applied. */ -@SinceKotlin("1.4") -@JvmName("formatNullable") @kotlin.internal.InlineOnly public inline fun String.Companion.format(locale: Locale?, format: String, vararg args: Any?): String = java.lang.String.format(locale, format, *args)