From baa6b445673a80de516c4890930215b5577ab95a Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Sun, 23 Jul 2017 00:28:29 +0300 Subject: [PATCH] Deprecate CharSequence.size in JS #KT-18267 Fixed --- js/js.libraries/src/core/string.kt | 3 ++- js/js.translator/testData/box/expression/misc/KT-5058.kt | 2 +- .../testData/box/expression/stringClass/extensionMethods.kt | 2 -- .../testData/box/inheritance/overrideAnyMethods.kt | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/js/js.libraries/src/core/string.kt b/js/js.libraries/src/core/string.kt index e1309830100..eee4c3b3261 100644 --- a/js/js.libraries/src/core/string.kt +++ b/js/js.libraries/src/core/string.kt @@ -35,8 +35,9 @@ public inline fun String.match(regex: String): Array? = asDynamic().matc //native public fun String.trim(): String //TODO: String.replace to implement effective trimLeading and trimTrailing +@Deprecated("Use length property instead.", ReplaceWith("length"), level = DeprecationLevel.WARNING) // TODO: ERROR in 1.2 @kotlin.internal.InlineOnly -public inline val CharSequence.size: Int get() = asDynamic().length +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) diff --git a/js/js.translator/testData/box/expression/misc/KT-5058.kt b/js/js.translator/testData/box/expression/misc/KT-5058.kt index 46dc87f13bd..14ecffb20c8 100644 --- a/js/js.translator/testData/box/expression/misc/KT-5058.kt +++ b/js/js.translator/testData/box/expression/misc/KT-5058.kt @@ -7,7 +7,7 @@ fun test():Any { if (true) { when { false -> "1" - ((a as? String)?.size ?: 0 > 0) -> a + ((a as? String)?.length ?: 0 > 0) -> a else -> "2" } } diff --git a/js/js.translator/testData/box/expression/stringClass/extensionMethods.kt b/js/js.translator/testData/box/expression/stringClass/extensionMethods.kt index 0dd88d793dd..2ee9761cb61 100644 --- a/js/js.translator/testData/box/expression/stringClass/extensionMethods.kt +++ b/js/js.translator/testData/box/expression/stringClass/extensionMethods.kt @@ -22,7 +22,6 @@ fun assertEquals(expected: Any, actual: Any, s: CharSequence, whatTested: String } fun testString(s: String, expectedSize: Int, indexOfB: Int) { - assertEquals(expectedSize, s.size, s, "size") assertEquals(expectedSize, s.length, s, "length") assertEquals(expectedSize == 0, s.isEmpty(), s, "isEmpty()") assertEquals(expectedSize != 0, s.startsWith(startsWithParam), s, "startsWith(\"$startsWithParam\")") @@ -35,7 +34,6 @@ fun testString(s: String, expectedSize: Int, indexOfB: Int) { } fun testCharSequence(s: CharSequence, expectedSize: Int) { - assertEquals(expectedSize, s.size, s, "size") assertEquals(expectedSize, s.length, s, "length") assertEquals(expectedSize == 0, s.isEmpty(), s, "isEmpty()") } diff --git a/js/js.translator/testData/box/inheritance/overrideAnyMethods.kt b/js/js.translator/testData/box/inheritance/overrideAnyMethods.kt index 57d34cd5548..0bdc25a9b37 100644 --- a/js/js.translator/testData/box/inheritance/overrideAnyMethods.kt +++ b/js/js.translator/testData/box/inheritance/overrideAnyMethods.kt @@ -7,7 +7,7 @@ inline fun String.charCodeAt(i: Int): Int = asDynamic().charCodeAt(i) fun String.myHashCode(): Int { var hash = 0 - for (i in 0..size - 1) { + for (i in 0..length - 1) { hash = 31 * hash + charCodeAt(i) }