From 27dde5f730ddcc32df3af9b83771fa2b72e67988 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Sun, 12 Aug 2018 03:18:19 +0300 Subject: [PATCH] String.compareTo: SinceKotlin in JS and common, restore default parameter value in JVM Default parameter is required to generate docs with Dokka for now. #KT-18067 --- libraries/stdlib/common/src/kotlin/TextH.kt | 12 +++++++----- libraries/stdlib/js/src/kotlin/string.kt | 4 +++- libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt | 3 ++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/libraries/stdlib/common/src/kotlin/TextH.kt b/libraries/stdlib/common/src/kotlin/TextH.kt index 7fecd6b8603..a885e54d8a3 100644 --- a/libraries/stdlib/common/src/kotlin/TextH.kt +++ b/libraries/stdlib/common/src/kotlin/TextH.kt @@ -158,6 +158,13 @@ expect fun String.replaceFirst(oldValue: String, newValue: String, ignoreCase: B */ expect fun String?.equals(other: String?, ignoreCase: Boolean = false): Boolean +/** + * Compares two strings lexicographically, optionally ignoring case differences. + */ +@SinceKotlin("1.2") +expect fun String.compareTo(other: String, ignoreCase: Boolean = false): Int + + // From stringsCode.kt internal inline expect fun String.nativeIndexOf(ch: Char, fromIndex: Int): Int @@ -290,11 +297,6 @@ expect fun Int.toString(radix: Int): String @SinceKotlin("1.2") expect fun Long.toString(radix: Int): String -/** - * Compares two strings lexicographically, optionally ignoring case differences. - */ -expect fun String.compareTo(other: String, ignoreCase: Boolean = false): Int - @PublishedApi internal expect fun checkRadix(radix: Int): Int diff --git a/libraries/stdlib/js/src/kotlin/string.kt b/libraries/stdlib/js/src/kotlin/string.kt index 8ed5aa530fe..32036697228 100644 --- a/libraries/stdlib/js/src/kotlin/string.kt +++ b/libraries/stdlib/js/src/kotlin/string.kt @@ -74,7 +74,9 @@ public inline val CharSequence.size: Int get() = length @kotlin.internal.InlineOnly internal inline fun String.nativeReplace(pattern: RegExp, replacement: String): String = asDynamic().replace(pattern, replacement) -public actual fun String.compareTo(other: String, ignoreCase: Boolean): Int { +@SinceKotlin("1.2") +@Suppress("ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS") +public actual fun String.compareTo(other: String, ignoreCase: Boolean = false): Int { if (ignoreCase) { val n1 = this.length val n2 = other.length diff --git a/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt b/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt index ad6717c26b9..561371be034 100644 --- a/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt +++ b/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt @@ -317,7 +317,8 @@ public inline fun String.codePointCount(beginIndex: Int, endIndex: Int): Int = /** * Compares two strings lexicographically, optionally ignoring case differences. */ -public actual fun String.compareTo(other: String, ignoreCase: Boolean): Int { +@Suppress("ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS") +public actual fun String.compareTo(other: String, ignoreCase: Boolean = false): Int { if (ignoreCase) return (this as java.lang.String).compareToIgnoreCase(other) else