From 9f85fa9720f37a05d1d9a5f3994ba1e6acb25498 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Mon, 1 Jun 2015 16:19:13 +0300 Subject: [PATCH] Make proposed split replacement equivalent in behavior with additional dropLastWhile call. #KT-7887 --- libraries/stdlib/src/kotlin/text/StringsJVM.kt | 2 +- libraries/stdlib/test/text/StringJVMTest.kt | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/stdlib/src/kotlin/text/StringsJVM.kt b/libraries/stdlib/src/kotlin/text/StringsJVM.kt index 8031059ffcd..dfa54c17e63 100644 --- a/libraries/stdlib/src/kotlin/text/StringsJVM.kt +++ b/libraries/stdlib/src/kotlin/text/StringsJVM.kt @@ -131,7 +131,7 @@ public fun String.split(regex: Pattern, limit: Int = 0): List /** * Splits this string around matches of the given regular expression. */ -deprecated("Convert String argument to regex with toRegex or use splitBy instead for literal delimiters. Please note the change of return type.", ReplaceWith("split(regex.toRegex()).toTypedArray()")) +deprecated("Convert String argument to regex with toRegex or use splitBy instead for literal delimiters. Please note the change of return type.", ReplaceWith("split(regex.toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()")) public fun String.split(regex: String): Array = (this as java.lang.String).split(regex) /** diff --git a/libraries/stdlib/test/text/StringJVMTest.kt b/libraries/stdlib/test/text/StringJVMTest.kt index 62c719fb37f..29bee11c35e 100644 --- a/libraries/stdlib/test/text/StringJVMTest.kt +++ b/libraries/stdlib/test/text/StringJVMTest.kt @@ -65,6 +65,9 @@ class StringJVMTest { assertEquals(listOf("ab", "cd", "def", ""), s.split(isDigit)) assertEquals(listOf("ab", "cd", "def3"), s.split(isDigit, 3)) + // deprecation replacement equivalence + assertEquals("\\d".toPattern().split(s).toList(), s.split("\\d".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray().toList()) + fails { s.split(isDigit, -1) }