From 7573fcde53c47e12525094d9dcd2ee2c3be3baa2 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Fri, 5 Jul 2019 19:54:50 +0300 Subject: [PATCH] Demote new experimental capitalize overloads in overload resolution Revert "Fix method reference ambiguity in test after introducing 'capitalize' overload" This reverts commit fe9bd9ee --- .../codegen/box/reflection/functions/functionFromStdlib.kt | 3 +-- libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/testData/codegen/box/reflection/functions/functionFromStdlib.kt b/compiler/testData/codegen/box/reflection/functions/functionFromStdlib.kt index 6a5d4400b8e..75f1d1e143b 100644 --- a/compiler/testData/codegen/box/reflection/functions/functionFromStdlib.kt +++ b/compiler/testData/codegen/box/reflection/functions/functionFromStdlib.kt @@ -7,6 +7,5 @@ import kotlin.reflect.jvm.isAccessible fun doStuff(fn: KFunction1) = fn.call("oK") fun box(): String { - val method: KFunction1 = String::capitalize - return doStuff(method.apply { isAccessible = true }) + return doStuff(String::capitalize.apply { isAccessible = true }) } diff --git a/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt b/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt index aff9a260cc1..06a6299f962 100644 --- a/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt +++ b/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt @@ -574,6 +574,7 @@ public actual fun String.capitalize(): String { */ @SinceKotlin("1.3") @ExperimentalStdlibApi +@kotlin.internal.LowPriorityInOverloadResolution public fun String.capitalize(locale: Locale): String { if (isNotEmpty()) { val firstChar = this[0] @@ -608,6 +609,7 @@ public actual fun String.decapitalize(): String { */ @SinceKotlin("1.3") @ExperimentalStdlibApi +@kotlin.internal.LowPriorityInOverloadResolution public fun String.decapitalize(locale: Locale): String { return if (isNotEmpty() && !this[0].isLowerCase()) substring(0, 1).toLowerCase(locale) + substring(1) else this }