Promote common StringBuilder to stable
(cherry picked from commit 920e48217c320a35e246b827109d214693d954b5)
This commit is contained in:
committed by
Vasily Levchenko
parent
36538cf5c5
commit
bb397b6991
@@ -58,8 +58,8 @@ actual class StringBuilder private constructor (
|
|||||||
return append(toAppend, 0, toAppend.length)
|
return append(toAppend, 0, toAppend.length)
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
actual override fun append(value: CharSequence?, startIndex: Int, endIndex: Int): StringBuilder =
|
||||||
actual override fun append(value: CharSequence?, startIndex: Int, endIndex: Int): StringBuilder = this.appendRange(value, startIndex, endIndex)
|
this.appendRange(value ?: "null", startIndex, endIndex)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reverses the contents of this string builder and returns this instance.
|
* Reverses the contents of this string builder and returns this instance.
|
||||||
@@ -212,8 +212,8 @@ actual class StringBuilder private constructor (
|
|||||||
*
|
*
|
||||||
* Returns `-1` if the specified [string] does not occur in this string builder.
|
* Returns `-1` if the specified [string] does not occur in this string builder.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
actual fun indexOf(string: String): Int {
|
actual fun indexOf(string: String): Int {
|
||||||
return (this as CharSequence).indexOf(string, startIndex = 0, ignoreCase = false)
|
return (this as CharSequence).indexOf(string, startIndex = 0, ignoreCase = false)
|
||||||
}
|
}
|
||||||
@@ -224,8 +224,8 @@ actual class StringBuilder private constructor (
|
|||||||
*
|
*
|
||||||
* Returns `-1` if the specified [string] does not occur in this string builder starting at the specified [startIndex].
|
* Returns `-1` if the specified [string] does not occur in this string builder starting at the specified [startIndex].
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
actual fun indexOf(string: String, startIndex: Int): Int {
|
actual fun indexOf(string: String, startIndex: Int): Int {
|
||||||
if (string.isEmpty() && startIndex >= _length) return _length
|
if (string.isEmpty() && startIndex >= _length) return _length
|
||||||
return (this as CharSequence).indexOf(string, startIndex, ignoreCase = false)
|
return (this as CharSequence).indexOf(string, startIndex, ignoreCase = false)
|
||||||
@@ -237,8 +237,8 @@ actual class StringBuilder private constructor (
|
|||||||
*
|
*
|
||||||
* Returns `-1` if the specified [string] does not occur in this string builder.
|
* Returns `-1` if the specified [string] does not occur in this string builder.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
actual fun lastIndexOf(string: String): Int {
|
actual fun lastIndexOf(string: String): Int {
|
||||||
if (string.isEmpty()) return _length
|
if (string.isEmpty()) return _length
|
||||||
return (this as CharSequence).lastIndexOf(string, startIndex = lastIndex, ignoreCase = false)
|
return (this as CharSequence).lastIndexOf(string, startIndex = lastIndex, ignoreCase = false)
|
||||||
@@ -250,8 +250,8 @@ actual class StringBuilder private constructor (
|
|||||||
*
|
*
|
||||||
* Returns `-1` if the specified [string] does not occur in this string builder starting at the specified [startIndex].
|
* Returns `-1` if the specified [string] does not occur in this string builder starting at the specified [startIndex].
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
actual fun lastIndexOf(string: String, startIndex: Int): Int {
|
actual fun lastIndexOf(string: String, startIndex: Int): Int {
|
||||||
if (string.isEmpty() && startIndex >= _length) return _length
|
if (string.isEmpty() && startIndex >= _length) return _length
|
||||||
return (this as CharSequence).lastIndexOf(string, startIndex, ignoreCase = false)
|
return (this as CharSequence).lastIndexOf(string, startIndex, ignoreCase = false)
|
||||||
@@ -319,7 +319,6 @@ actual class StringBuilder private constructor (
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
||||||
*/
|
*/
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
|
||||||
actual fun insert(index: Int, value: CharSequence?): StringBuilder {
|
actual fun insert(index: Int, value: CharSequence?): StringBuilder {
|
||||||
// Kotlin/JVM inserts the "null" string if the argument is null.
|
// Kotlin/JVM inserts the "null" string if the argument is null.
|
||||||
val toInsert = value ?: "null"
|
val toInsert = value ?: "null"
|
||||||
@@ -386,8 +385,8 @@ actual class StringBuilder private constructor (
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException if [startIndex] is less than zero or greater than the length of this string builder.
|
* @throws IndexOutOfBoundsException if [startIndex] is less than zero or greater than the length of this string builder.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
actual fun substring(startIndex: Int): String {
|
actual fun substring(startIndex: Int): String {
|
||||||
return substring(startIndex, _length)
|
return substring(startIndex, _length)
|
||||||
}
|
}
|
||||||
@@ -425,8 +424,8 @@ actual class StringBuilder private constructor (
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] if [startIndex] is less than zero, greater than the length of this string builder, or `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] if [startIndex] is less than zero, greater than the length of this string builder, or `startIndex > endIndex`.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
fun setRange(startIndex: Int, endIndex: Int, value: String): StringBuilder {
|
fun setRange(startIndex: Int, endIndex: Int, value: String): StringBuilder {
|
||||||
checkReplaceRange(startIndex, endIndex, _length)
|
checkReplaceRange(startIndex, endIndex, _length)
|
||||||
|
|
||||||
@@ -450,8 +449,8 @@ actual class StringBuilder private constructor (
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.
|
* @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
fun deleteAt(index: Int): StringBuilder {
|
fun deleteAt(index: Int): StringBuilder {
|
||||||
checkIndex(index)
|
checkIndex(index)
|
||||||
array.copyInto(array, startIndex = index + 1, endIndex = _length, destinationOffset = index)
|
array.copyInto(array, startIndex = index + 1, endIndex = _length, destinationOffset = index)
|
||||||
@@ -467,8 +466,8 @@ actual class StringBuilder private constructor (
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] is out of range of this string builder indices or when `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] is out of range of this string builder indices or when `startIndex > endIndex`.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
fun deleteRange(startIndex: Int, endIndex: Int): StringBuilder {
|
fun deleteRange(startIndex: Int, endIndex: Int): StringBuilder {
|
||||||
checkReplaceRange(startIndex, endIndex, _length)
|
checkReplaceRange(startIndex, endIndex, _length)
|
||||||
|
|
||||||
@@ -490,8 +489,8 @@ actual class StringBuilder private constructor (
|
|||||||
* @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],
|
* @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],
|
||||||
* or when that index is out of the [destination] array indices range.
|
* or when that index is out of the [destination] array indices range.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
fun toCharArray(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = this.length) {
|
fun toCharArray(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = this.length) {
|
||||||
checkBoundsIndexes(startIndex, endIndex, _length)
|
checkBoundsIndexes(startIndex, endIndex, _length)
|
||||||
checkBoundsIndexes(destinationOffset, destinationOffset + endIndex - startIndex, destination.size)
|
checkBoundsIndexes(destinationOffset, destinationOffset + endIndex - startIndex, destination.size)
|
||||||
@@ -510,8 +509,8 @@ actual class StringBuilder private constructor (
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
fun appendRange(value: CharArray, startIndex: Int, endIndex: Int): StringBuilder {
|
fun appendRange(value: CharArray, startIndex: Int, endIndex: Int): StringBuilder {
|
||||||
checkBoundsIndexes(startIndex, endIndex, value.size)
|
checkBoundsIndexes(startIndex, endIndex, value.size)
|
||||||
val extraLength = endIndex - startIndex
|
val extraLength = endIndex - startIndex
|
||||||
@@ -524,28 +523,25 @@ actual class StringBuilder private constructor (
|
|||||||
/**
|
/**
|
||||||
* Appends a subsequence of the specified character sequence [value] to this string builder and returns this instance.
|
* Appends a subsequence of the specified character sequence [value] to this string builder and returns this instance.
|
||||||
*
|
*
|
||||||
* @param value the character sequence from which a subsequence is appended. If [value] is `null`,
|
* @param value the character sequence from which a subsequence is appended.
|
||||||
* then characters are appended as if [value] contained the four characters `"null"`.
|
|
||||||
* @param startIndex the beginning (inclusive) of the subsequence to append.
|
* @param startIndex the beginning (inclusive) of the subsequence to append.
|
||||||
* @param endIndex the end (exclusive) of the subsequence to append.
|
* @param endIndex the end (exclusive) of the subsequence to append.
|
||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
fun appendRange(value: CharSequence?, startIndex: Int, endIndex: Int): StringBuilder {
|
fun appendRange(value: CharSequence, startIndex: Int, endIndex: Int): StringBuilder {
|
||||||
// Kotlin/JVM processes null as if the argument was "null" char sequence.
|
checkBoundsIndexes(startIndex, endIndex, value.length)
|
||||||
val toAppend = value ?: "null"
|
|
||||||
checkBoundsIndexes(startIndex, endIndex, toAppend.length)
|
|
||||||
val extraLength = endIndex - startIndex
|
val extraLength = endIndex - startIndex
|
||||||
ensureExtraCapacity(extraLength)
|
ensureExtraCapacity(extraLength)
|
||||||
(toAppend as? String)?.let {
|
(value as? String)?.let {
|
||||||
_length += insertString(array, _length, it, startIndex, extraLength)
|
_length += insertString(array, _length, it, startIndex, extraLength)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
var index = startIndex
|
var index = startIndex
|
||||||
while (index < endIndex)
|
while (index < endIndex)
|
||||||
array[_length++] = toAppend[index++]
|
array[_length++] = value[index++]
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -555,20 +551,17 @@ actual class StringBuilder private constructor (
|
|||||||
* The inserted characters go in the same order as in the [value] character sequence, starting at [index].
|
* The inserted characters go in the same order as in the [value] character sequence, starting at [index].
|
||||||
*
|
*
|
||||||
* @param index the position in this string builder to insert at.
|
* @param index the position in this string builder to insert at.
|
||||||
* @param value the character sequence from which a subsequence is inserted. If [value] is `null`,
|
* @param value the character sequence from which a subsequence is inserted.
|
||||||
* then characters will be inserted as if [value] contained the four characters `"null"`.
|
|
||||||
* @param startIndex the beginning (inclusive) of the subsequence to insert.
|
* @param startIndex the beginning (inclusive) of the subsequence to insert.
|
||||||
* @param endIndex the end (exclusive) of the subsequence to insert.
|
* @param endIndex the end (exclusive) of the subsequence to insert.
|
||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.
|
||||||
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
fun insertRange(index: Int, value: CharSequence?, startIndex: Int, endIndex: Int): StringBuilder {
|
fun insertRange(index: Int, value: CharSequence, startIndex: Int, endIndex: Int): StringBuilder {
|
||||||
// Kotlin/JVM processes null as if the argument was "null" char sequence.
|
checkBoundsIndexes(startIndex, endIndex, value.length)
|
||||||
val toInsert = value ?: "null"
|
|
||||||
checkBoundsIndexes(startIndex, endIndex, toInsert.length)
|
|
||||||
checkInsertIndex(index)
|
checkInsertIndex(index)
|
||||||
val extraLength = endIndex - startIndex
|
val extraLength = endIndex - startIndex
|
||||||
ensureExtraCapacity(extraLength)
|
ensureExtraCapacity(extraLength)
|
||||||
@@ -577,7 +570,7 @@ actual class StringBuilder private constructor (
|
|||||||
var from = startIndex
|
var from = startIndex
|
||||||
var to = index
|
var to = index
|
||||||
while (from < endIndex) {
|
while (from < endIndex) {
|
||||||
array[to++] = toInsert[from++]
|
array[to++] = value[from++]
|
||||||
}
|
}
|
||||||
|
|
||||||
_length += extraLength
|
_length += extraLength
|
||||||
@@ -597,8 +590,8 @@ actual class StringBuilder private constructor (
|
|||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.
|
||||||
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
fun insertRange(index: Int, value: CharArray, startIndex: Int, endIndex: Int): StringBuilder {
|
fun insertRange(index: Int, value: CharArray, startIndex: Int, endIndex: Int): StringBuilder {
|
||||||
checkInsertIndex(index)
|
checkInsertIndex(index)
|
||||||
checkBoundsIndexes(startIndex, endIndex, value.size)
|
checkBoundsIndexes(startIndex, endIndex, value.size)
|
||||||
@@ -665,8 +658,8 @@ public actual inline operator fun StringBuilder.set(index: Int, value: Char): Un
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] if [startIndex] is less than zero, greater than the length of this string builder, or `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] if [startIndex] is less than zero, greater than the length of this string builder, or `startIndex > endIndex`.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public actual inline fun StringBuilder.setRange(startIndex: Int, endIndex: Int, value: String): StringBuilder =
|
public actual inline fun StringBuilder.setRange(startIndex: Int, endIndex: Int, value: String): StringBuilder =
|
||||||
@@ -681,8 +674,8 @@ public actual inline fun StringBuilder.setRange(startIndex: Int, endIndex: Int,
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.
|
* @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public actual inline fun StringBuilder.deleteAt(index: Int): StringBuilder = this.deleteAt(index)
|
public actual inline fun StringBuilder.deleteAt(index: Int): StringBuilder = this.deleteAt(index)
|
||||||
@@ -695,8 +688,8 @@ public actual inline fun StringBuilder.deleteAt(index: Int): StringBuilder = thi
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this string builder indices or when `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this string builder indices or when `startIndex > endIndex`.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public actual inline fun StringBuilder.deleteRange(startIndex: Int, endIndex: Int): StringBuilder = this.deleteRange(startIndex, endIndex)
|
public actual inline fun StringBuilder.deleteRange(startIndex: Int, endIndex: Int): StringBuilder = this.deleteRange(startIndex, endIndex)
|
||||||
@@ -713,8 +706,8 @@ public actual inline fun StringBuilder.deleteRange(startIndex: Int, endIndex: In
|
|||||||
* @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],
|
* @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],
|
||||||
* or when that index is out of the [destination] array indices range.
|
* or when that index is out of the [destination] array indices range.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
@Suppress("EXTENSION_SHADOWED_BY_MEMBER", "ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS")
|
@Suppress("EXTENSION_SHADOWED_BY_MEMBER", "ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS")
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public actual inline fun StringBuilder.toCharArray(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = this.length) =
|
public actual inline fun StringBuilder.toCharArray(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = this.length) =
|
||||||
@@ -731,8 +724,8 @@ public actual inline fun StringBuilder.toCharArray(destination: CharArray, desti
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public actual inline fun StringBuilder.appendRange(value: CharArray, startIndex: Int, endIndex: Int): StringBuilder =
|
public actual inline fun StringBuilder.appendRange(value: CharArray, startIndex: Int, endIndex: Int): StringBuilder =
|
||||||
@@ -741,18 +734,17 @@ public actual inline fun StringBuilder.appendRange(value: CharArray, startIndex:
|
|||||||
/**
|
/**
|
||||||
* Appends a subsequence of the specified character sequence [value] to this string builder and returns this instance.
|
* Appends a subsequence of the specified character sequence [value] to this string builder and returns this instance.
|
||||||
*
|
*
|
||||||
* @param value the character sequence from which a subsequence is appended. If [value] is `null`,
|
* @param value the character sequence from which a subsequence is appended.
|
||||||
* then characters are appended as if [value] contained the four characters `"null"`.
|
|
||||||
* @param startIndex the beginning (inclusive) of the subsequence to append.
|
* @param startIndex the beginning (inclusive) of the subsequence to append.
|
||||||
* @param endIndex the end (exclusive) of the subsequence to append.
|
* @param endIndex the end (exclusive) of the subsequence to append.
|
||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public actual inline fun StringBuilder.appendRange(value: CharSequence?, startIndex: Int, endIndex: Int): StringBuilder =
|
public actual inline fun StringBuilder.appendRange(value: CharSequence, startIndex: Int, endIndex: Int): StringBuilder =
|
||||||
this.appendRange(value, startIndex, endIndex)
|
this.appendRange(value, startIndex, endIndex)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -768,8 +760,8 @@ public actual inline fun StringBuilder.appendRange(value: CharSequence?, startIn
|
|||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.
|
||||||
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public actual inline fun StringBuilder.insertRange(index: Int, value: CharArray, startIndex: Int, endIndex: Int): StringBuilder =
|
public actual inline fun StringBuilder.insertRange(index: Int, value: CharArray, startIndex: Int, endIndex: Int): StringBuilder =
|
||||||
@@ -781,19 +773,18 @@ public actual inline fun StringBuilder.insertRange(index: Int, value: CharArray,
|
|||||||
* The inserted characters go in the same order as in the [value] character sequence, starting at [index].
|
* The inserted characters go in the same order as in the [value] character sequence, starting at [index].
|
||||||
*
|
*
|
||||||
* @param index the position in this string builder to insert at.
|
* @param index the position in this string builder to insert at.
|
||||||
* @param value the character sequence from which a subsequence is inserted. If [value] is `null`,
|
* @param value the character sequence from which a subsequence is inserted.
|
||||||
* then characters will be inserted as if [value] contained the four characters `"null"`.
|
|
||||||
* @param startIndex the beginning (inclusive) of the subsequence to insert.
|
* @param startIndex the beginning (inclusive) of the subsequence to insert.
|
||||||
* @param endIndex the end (exclusive) of the subsequence to insert.
|
* @param endIndex the end (exclusive) of the subsequence to insert.
|
||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.
|
||||||
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.3")
|
@SinceKotlin("1.4")
|
||||||
@ExperimentalStdlibApi
|
@WasExperimental(ExperimentalStdlibApi::class)
|
||||||
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public actual inline fun StringBuilder.insertRange(index: Int, value: CharSequence?, startIndex: Int, endIndex: Int): StringBuilder =
|
public actual inline fun StringBuilder.insertRange(index: Int, value: CharSequence, startIndex: Int, endIndex: Int): StringBuilder =
|
||||||
this.insertRange(index, value, startIndex, endIndex)
|
this.insertRange(index, value, startIndex, endIndex)
|
||||||
|
|
||||||
// Method parameters renamings
|
// Method parameters renamings
|
||||||
@@ -887,10 +878,14 @@ public inline fun StringBuilder.setLength(l: Int) = this.setLength(newLength = l
|
|||||||
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [start] or [end] is out of range of the [csq] character sequence indices or when `start > end`.
|
* @throws IndexOutOfBoundsException or [IllegalArgumentException] when [start] or [end] is out of range of the [csq] character sequence indices or when `start > end`.
|
||||||
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
* @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.
|
||||||
*/
|
*/
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@Deprecated(
|
||||||
|
"Use insertRange(index: Int, csq: CharSequence, start: Int, end: Int) instead",
|
||||||
|
ReplaceWith("insertRange(index, csq ?: "null", start, end)"),
|
||||||
|
DeprecationLevel.WARNING
|
||||||
|
)
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public inline fun StringBuilder.insert(index: Int, csq: CharSequence?, start: Int, end: Int): StringBuilder =
|
public inline fun StringBuilder.insert(index: Int, csq: CharSequence?, start: Int, end: Int): StringBuilder =
|
||||||
this.insertRange(index, csq, start, end)
|
this.insertRange(index, csq ?: "null", start, end)
|
||||||
|
|
||||||
@Deprecated("Use set(index: Int, value: Char) instead", ReplaceWith("set(index, value)"), DeprecationLevel.WARNING)
|
@Deprecated("Use set(index: Int, value: Char) instead", ReplaceWith("set(index, value)"), DeprecationLevel.WARNING)
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
@@ -905,6 +900,6 @@ public inline fun StringBuilder.setCharAt(index: Int, value: Char) = this.set(in
|
|||||||
*
|
*
|
||||||
* @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.
|
* @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.
|
||||||
*/
|
*/
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@Deprecated("Use deleteAt(index: Int) instead", ReplaceWith("deleteAt(index)"), DeprecationLevel.WARNING)
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public inline fun StringBuilder.deleteCharAt(index: Int) = this.deleteAt(index)
|
public inline fun StringBuilder.deleteCharAt(index: Int) = this.deleteAt(index)
|
||||||
|
|||||||
Reference in New Issue
Block a user