Unify Array.copyOf and copyOfRange function templates between JVM and JS.
This commit is contained in:
@@ -12850,6 +12850,213 @@ public inline fun CharArray.asList(): List<Char> {
|
|||||||
return this.unsafeCast<Array<Char>>().asList()
|
return this.unsafeCast<Array<Char>>().asList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun <T> Array<out T>.copyOf(): Array<T> {
|
||||||
|
return this.asDynamic().slice()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun ByteArray.copyOf(): ByteArray {
|
||||||
|
return this.asDynamic().slice()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun ShortArray.copyOf(): ShortArray {
|
||||||
|
return this.asDynamic().slice()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun IntArray.copyOf(): IntArray {
|
||||||
|
return this.asDynamic().slice()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun LongArray.copyOf(): LongArray {
|
||||||
|
return this.asDynamic().slice()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun FloatArray.copyOf(): FloatArray {
|
||||||
|
return this.asDynamic().slice()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun DoubleArray.copyOf(): DoubleArray {
|
||||||
|
return this.asDynamic().slice()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun BooleanArray.copyOf(): BooleanArray {
|
||||||
|
return this.asDynamic().slice()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun CharArray.copyOf(): CharArray {
|
||||||
|
return this.asDynamic().slice()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
public fun ByteArray.copyOf(newSize: Int): ByteArray {
|
||||||
|
return arrayCopyResize(this, newSize, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
public fun ShortArray.copyOf(newSize: Int): ShortArray {
|
||||||
|
return arrayCopyResize(this, newSize, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
public fun IntArray.copyOf(newSize: Int): IntArray {
|
||||||
|
return arrayCopyResize(this, newSize, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
public fun LongArray.copyOf(newSize: Int): LongArray {
|
||||||
|
return arrayCopyResize(this, newSize, 0L)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
public fun FloatArray.copyOf(newSize: Int): FloatArray {
|
||||||
|
return arrayCopyResize(this, newSize, 0.0f)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
public fun DoubleArray.copyOf(newSize: Int): DoubleArray {
|
||||||
|
return arrayCopyResize(this, newSize, 0.0)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
public fun BooleanArray.copyOf(newSize: Int): BooleanArray {
|
||||||
|
return arrayCopyResize(this, newSize, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
public fun CharArray.copyOf(newSize: Int): CharArray {
|
||||||
|
return arrayCopyResize(this, newSize, '\u0000')
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
public fun <T> Array<out T>.copyOf(newSize: Int): Array<T?> {
|
||||||
|
return arrayCopyResize(this, newSize, null)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun <T> Array<out T>.copyOfRange(fromIndex: Int, toIndex: Int): Array<T> {
|
||||||
|
return this.asDynamic().slice(fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray {
|
||||||
|
return this.asDynamic().slice(fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray {
|
||||||
|
return this.asDynamic().slice(fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun IntArray.copyOfRange(fromIndex: Int, toIndex: Int): IntArray {
|
||||||
|
return this.asDynamic().slice(fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun LongArray.copyOfRange(fromIndex: Int, toIndex: Int): LongArray {
|
||||||
|
return this.asDynamic().slice(fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun FloatArray.copyOfRange(fromIndex: Int, toIndex: Int): FloatArray {
|
||||||
|
return this.asDynamic().slice(fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun DoubleArray.copyOfRange(fromIndex: Int, toIndex: Int): DoubleArray {
|
||||||
|
return this.asDynamic().slice(fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray {
|
||||||
|
return this.asDynamic().slice(fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
public inline fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray {
|
||||||
|
return this.asDynamic().slice(fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sorts the array in-place.
|
* Sorts the array in-place.
|
||||||
*/
|
*/
|
||||||
@@ -12978,213 +13185,6 @@ public fun CharArray.toTypedArray(): Array<Char> {
|
|||||||
return copyOf().unsafeCast<Array<Char>>()
|
return copyOf().unsafeCast<Array<Char>>()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun <T> Array<out T>.copyOf(): Array<T> {
|
|
||||||
return this.asDynamic().slice()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun ByteArray.copyOf(): ByteArray {
|
|
||||||
return this.asDynamic().slice()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun ShortArray.copyOf(): ShortArray {
|
|
||||||
return this.asDynamic().slice()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun IntArray.copyOf(): IntArray {
|
|
||||||
return this.asDynamic().slice()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun LongArray.copyOf(): LongArray {
|
|
||||||
return this.asDynamic().slice()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun FloatArray.copyOf(): FloatArray {
|
|
||||||
return this.asDynamic().slice()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun DoubleArray.copyOf(): DoubleArray {
|
|
||||||
return this.asDynamic().slice()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun BooleanArray.copyOf(): BooleanArray {
|
|
||||||
return this.asDynamic().slice()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun CharArray.copyOf(): CharArray {
|
|
||||||
return this.asDynamic().slice()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
public fun ByteArray.copyOf(newSize: Int): ByteArray {
|
|
||||||
return arrayCopyResize(this, newSize, 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
public fun ShortArray.copyOf(newSize: Int): ShortArray {
|
|
||||||
return arrayCopyResize(this, newSize, 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
public fun IntArray.copyOf(newSize: Int): IntArray {
|
|
||||||
return arrayCopyResize(this, newSize, 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
public fun LongArray.copyOf(newSize: Int): LongArray {
|
|
||||||
return arrayCopyResize(this, newSize, 0L)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
public fun FloatArray.copyOf(newSize: Int): FloatArray {
|
|
||||||
return arrayCopyResize(this, newSize, 0.0f)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
public fun DoubleArray.copyOf(newSize: Int): DoubleArray {
|
|
||||||
return arrayCopyResize(this, newSize, 0.0)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
public fun BooleanArray.copyOf(newSize: Int): BooleanArray {
|
|
||||||
return arrayCopyResize(this, newSize, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
public fun CharArray.copyOf(newSize: Int): CharArray {
|
|
||||||
return arrayCopyResize(this, newSize, '\u0000')
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
public fun <T> Array<out T>.copyOf(newSize: Int): Array<T?> {
|
|
||||||
return arrayCopyResize(this, newSize, null)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun <T> Array<out T>.copyOfRange(fromIndex: Int, toIndex: Int): Array<T> {
|
|
||||||
return this.asDynamic().slice(fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray {
|
|
||||||
return this.asDynamic().slice(fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray {
|
|
||||||
return this.asDynamic().slice(fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun IntArray.copyOfRange(fromIndex: Int, toIndex: Int): IntArray {
|
|
||||||
return this.asDynamic().slice(fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun LongArray.copyOfRange(fromIndex: Int, toIndex: Int): LongArray {
|
|
||||||
return this.asDynamic().slice(fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun FloatArray.copyOfRange(fromIndex: Int, toIndex: Int): FloatArray {
|
|
||||||
return this.asDynamic().slice(fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun DoubleArray.copyOfRange(fromIndex: Int, toIndex: Int): DoubleArray {
|
|
||||||
return this.asDynamic().slice(fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray {
|
|
||||||
return this.asDynamic().slice(fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
public inline fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray {
|
|
||||||
return this.asDynamic().slice(fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array containing all elements of the original array and then the given [element].
|
* Returns an array containing all elements of the original array and then the given [element].
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -12989,6 +12989,222 @@ public fun CharArray.asList(): List<Char> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun <T> Array<T>.copyOf(): Array<T> {
|
||||||
|
return java.util.Arrays.copyOf(this, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun ByteArray.copyOf(): ByteArray {
|
||||||
|
return java.util.Arrays.copyOf(this, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun ShortArray.copyOf(): ShortArray {
|
||||||
|
return java.util.Arrays.copyOf(this, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun IntArray.copyOf(): IntArray {
|
||||||
|
return java.util.Arrays.copyOf(this, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun LongArray.copyOf(): LongArray {
|
||||||
|
return java.util.Arrays.copyOf(this, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun FloatArray.copyOf(): FloatArray {
|
||||||
|
return java.util.Arrays.copyOf(this, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun DoubleArray.copyOf(): DoubleArray {
|
||||||
|
return java.util.Arrays.copyOf(this, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun BooleanArray.copyOf(): BooleanArray {
|
||||||
|
return java.util.Arrays.copyOf(this, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun CharArray.copyOf(): CharArray {
|
||||||
|
return java.util.Arrays.copyOf(this, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun ByteArray.copyOf(newSize: Int): ByteArray {
|
||||||
|
return java.util.Arrays.copyOf(this, newSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun ShortArray.copyOf(newSize: Int): ShortArray {
|
||||||
|
return java.util.Arrays.copyOf(this, newSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun IntArray.copyOf(newSize: Int): IntArray {
|
||||||
|
return java.util.Arrays.copyOf(this, newSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun LongArray.copyOf(newSize: Int): LongArray {
|
||||||
|
return java.util.Arrays.copyOf(this, newSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun FloatArray.copyOf(newSize: Int): FloatArray {
|
||||||
|
return java.util.Arrays.copyOf(this, newSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun DoubleArray.copyOf(newSize: Int): DoubleArray {
|
||||||
|
return java.util.Arrays.copyOf(this, newSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun BooleanArray.copyOf(newSize: Int): BooleanArray {
|
||||||
|
return java.util.Arrays.copyOf(this, newSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun CharArray.copyOf(newSize: Int): CharArray {
|
||||||
|
return java.util.Arrays.copyOf(this, newSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of the original array, resized to the given [newSize].
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun <T> Array<T>.copyOf(newSize: Int): Array<T?> {
|
||||||
|
return java.util.Arrays.copyOf(this, newSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun <T> Array<T>.copyOfRange(fromIndex: Int, toIndex: Int): Array<T> {
|
||||||
|
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray {
|
||||||
|
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray {
|
||||||
|
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun IntArray.copyOfRange(fromIndex: Int, toIndex: Int): IntArray {
|
||||||
|
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun LongArray.copyOfRange(fromIndex: Int, toIndex: Int): LongArray {
|
||||||
|
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun FloatArray.copyOfRange(fromIndex: Int, toIndex: Int): FloatArray {
|
||||||
|
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun DoubleArray.copyOfRange(fromIndex: Int, toIndex: Int): DoubleArray {
|
||||||
|
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray {
|
||||||
|
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns new array which is a copy of range of original array.
|
||||||
|
*/
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray {
|
||||||
|
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sorts the array in-place.
|
* Sorts the array in-place.
|
||||||
*/
|
*/
|
||||||
@@ -13285,249 +13501,6 @@ public fun CharArray.binarySearch(element: Char, fromIndex: Int = 0, toIndex: In
|
|||||||
return java.util.Arrays.binarySearch(this, fromIndex, toIndex, element)
|
return java.util.Arrays.binarySearch(this, fromIndex, toIndex, element)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun <T> Array<T>.copyOf(): Array<T> {
|
|
||||||
return java.util.Arrays.copyOf(this, size)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun ByteArray.copyOf(): ByteArray {
|
|
||||||
return java.util.Arrays.copyOf(this, size)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun ShortArray.copyOf(): ShortArray {
|
|
||||||
return java.util.Arrays.copyOf(this, size)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun IntArray.copyOf(): IntArray {
|
|
||||||
return java.util.Arrays.copyOf(this, size)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun LongArray.copyOf(): LongArray {
|
|
||||||
return java.util.Arrays.copyOf(this, size)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun FloatArray.copyOf(): FloatArray {
|
|
||||||
return java.util.Arrays.copyOf(this, size)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun DoubleArray.copyOf(): DoubleArray {
|
|
||||||
return java.util.Arrays.copyOf(this, size)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun BooleanArray.copyOf(): BooleanArray {
|
|
||||||
return java.util.Arrays.copyOf(this, size)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun CharArray.copyOf(): CharArray {
|
|
||||||
return java.util.Arrays.copyOf(this, size)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun <T> Array<T>.copyOf(newSize: Int): Array<T?> {
|
|
||||||
return java.util.Arrays.copyOf(this, newSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun ByteArray.copyOf(newSize: Int): ByteArray {
|
|
||||||
return java.util.Arrays.copyOf(this, newSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun ShortArray.copyOf(newSize: Int): ShortArray {
|
|
||||||
return java.util.Arrays.copyOf(this, newSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun IntArray.copyOf(newSize: Int): IntArray {
|
|
||||||
return java.util.Arrays.copyOf(this, newSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun LongArray.copyOf(newSize: Int): LongArray {
|
|
||||||
return java.util.Arrays.copyOf(this, newSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun FloatArray.copyOf(newSize: Int): FloatArray {
|
|
||||||
return java.util.Arrays.copyOf(this, newSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun DoubleArray.copyOf(newSize: Int): DoubleArray {
|
|
||||||
return java.util.Arrays.copyOf(this, newSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun BooleanArray.copyOf(newSize: Int): BooleanArray {
|
|
||||||
return java.util.Arrays.copyOf(this, newSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of the original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun CharArray.copyOf(newSize: Int): CharArray {
|
|
||||||
return java.util.Arrays.copyOf(this, newSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun <T> Array<T>.copyOfRange(fromIndex: Int, toIndex: Int): Array<T> {
|
|
||||||
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray {
|
|
||||||
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray {
|
|
||||||
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun IntArray.copyOfRange(fromIndex: Int, toIndex: Int): IntArray {
|
|
||||||
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun LongArray.copyOfRange(fromIndex: Int, toIndex: Int): LongArray {
|
|
||||||
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun FloatArray.copyOfRange(fromIndex: Int, toIndex: Int): FloatArray {
|
|
||||||
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun DoubleArray.copyOfRange(fromIndex: Int, toIndex: Int): DoubleArray {
|
|
||||||
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray {
|
|
||||||
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns new array which is a copy of range of original array.
|
|
||||||
*/
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
@kotlin.internal.InlineOnly
|
|
||||||
public inline fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray {
|
|
||||||
return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fills original array with the provided value.
|
* Fills original array with the provided value.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -21,57 +21,6 @@ import templates.Family.*
|
|||||||
fun specialJS(): List<GenericFunction> {
|
fun specialJS(): List<GenericFunction> {
|
||||||
val templates = arrayListOf<GenericFunction>()
|
val templates = arrayListOf<GenericFunction>()
|
||||||
|
|
||||||
templates add f("copyOfRange(fromIndex: Int, toIndex: Int)") {
|
|
||||||
// TODO: Arguments checking as in java?
|
|
||||||
only(ArraysOfObjects, ArraysOfPrimitives)
|
|
||||||
doc { "Returns new array which is a copy of range of original array." }
|
|
||||||
inline(true)
|
|
||||||
annotations("""@Suppress("NOTHING_TO_INLINE")""")
|
|
||||||
returns("SELF")
|
|
||||||
returns(ArraysOfObjects) { "Array<T>" }
|
|
||||||
body {
|
|
||||||
"return this.asDynamic().slice(fromIndex, toIndex)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
templates add f("copyOf()") {
|
|
||||||
only(ArraysOfObjects, ArraysOfPrimitives)
|
|
||||||
doc { "Returns new array which is a copy of the original array." }
|
|
||||||
inline(true)
|
|
||||||
annotations("""@Suppress("NOTHING_TO_INLINE")""")
|
|
||||||
returns("SELF")
|
|
||||||
returns(ArraysOfObjects) { "Array<T>" }
|
|
||||||
body {
|
|
||||||
"return this.asDynamic().slice()"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val allArrays = PrimitiveType.defaultPrimitives.map { ArraysOfPrimitives to it } + (ArraysOfObjects to null)
|
|
||||||
templates addAll allArrays.map {
|
|
||||||
val (family, primitive) = it
|
|
||||||
f("copyOf(newSize: Int)") {
|
|
||||||
only(family)
|
|
||||||
val defaultValue: String
|
|
||||||
if (primitive != null) {
|
|
||||||
returns("SELF")
|
|
||||||
only(primitive)
|
|
||||||
defaultValue = when (primitive) {
|
|
||||||
PrimitiveType.Boolean -> false.toString()
|
|
||||||
PrimitiveType.Char -> "'\\u0000'"
|
|
||||||
else -> "ZERO"
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
returns(ArraysOfObjects) { "Array<T?>" }
|
|
||||||
defaultValue = "null"
|
|
||||||
}
|
|
||||||
doc { "Returns new array which is a copy of the original array." }
|
|
||||||
body {
|
|
||||||
"""
|
|
||||||
return arrayCopyResize(this, newSize, $defaultValue)
|
|
||||||
"""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
templates add f("plusElement(element: T)") {
|
templates add f("plusElement(element: T)") {
|
||||||
|
|||||||
@@ -80,42 +80,6 @@ fun specialJVM(): List<GenericFunction> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
templates add f("copyOfRange(fromIndex: Int, toIndex: Int)") {
|
|
||||||
inline(Inline.Only)
|
|
||||||
|
|
||||||
only(InvariantArraysOfObjects, ArraysOfPrimitives)
|
|
||||||
doc { "Returns new array which is a copy of range of original array." }
|
|
||||||
returns("SELF")
|
|
||||||
body {
|
|
||||||
"return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
templates add f("copyOf()") {
|
|
||||||
inline(Inline.Only)
|
|
||||||
|
|
||||||
only(InvariantArraysOfObjects, ArraysOfPrimitives)
|
|
||||||
doc { "Returns new array which is a copy of the original array." }
|
|
||||||
returns("SELF")
|
|
||||||
body {
|
|
||||||
"return java.util.Arrays.copyOf(this, size)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// This overload can cause nulls if array size is expanding, hence different return overload
|
|
||||||
templates add f("copyOf(newSize: Int)") {
|
|
||||||
inline(Inline.Only)
|
|
||||||
|
|
||||||
only(InvariantArraysOfObjects, ArraysOfPrimitives)
|
|
||||||
doc { "Returns new array which is a copy of the original array." }
|
|
||||||
returns("SELF")
|
|
||||||
returns(InvariantArraysOfObjects) { "Array<T?>" }
|
|
||||||
body {
|
|
||||||
"return java.util.Arrays.copyOf(this, newSize)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
templates add f("fill(element: T, fromIndex: Int = 0, toIndex: Int = size)") {
|
templates add f("fill(element: T, fromIndex: Int = 0, toIndex: Int = size)") {
|
||||||
only(InvariantArraysOfObjects, ArraysOfPrimitives)
|
only(InvariantArraysOfObjects, ArraysOfPrimitives)
|
||||||
doc { "Fills original array with the provided value." }
|
doc { "Fills original array with the provided value." }
|
||||||
@@ -250,6 +214,83 @@ fun specialJVM(): List<GenericFunction> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
object CommonArrays {
|
object CommonArrays {
|
||||||
|
// TODO: plus
|
||||||
|
fun f_copyOfRange() = f("copyOfRange(fromIndex: Int, toIndex: Int)") {
|
||||||
|
inline(Platform.JVM, Inline.Only)
|
||||||
|
inline(Platform.JS, Inline.Yes)
|
||||||
|
annotations(Platform.JS, """@Suppress("NOTHING_TO_INLINE")""")
|
||||||
|
|
||||||
|
only(InvariantArraysOfObjects, ArraysOfPrimitives)
|
||||||
|
only(Platform.JS, ArraysOfObjects, ArraysOfPrimitives)
|
||||||
|
|
||||||
|
doc { "Returns new array which is a copy of range of original array." }
|
||||||
|
returns("SELF")
|
||||||
|
returns(Platform.JS, ArraysOfObjects) { "Array<T>" }
|
||||||
|
body(Platform.JVM) {
|
||||||
|
"return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)"
|
||||||
|
}
|
||||||
|
body(Platform.JS) {
|
||||||
|
// TODO: Arguments checking as in java?
|
||||||
|
"return this.asDynamic().slice(fromIndex, toIndex)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun f_copyOf() = f("copyOf()") {
|
||||||
|
inline(Platform.JVM, Inline.Only)
|
||||||
|
inline(Platform.JS, Inline.Yes)
|
||||||
|
annotations(Platform.JS, """@Suppress("NOTHING_TO_INLINE")""")
|
||||||
|
|
||||||
|
only(InvariantArraysOfObjects, ArraysOfPrimitives)
|
||||||
|
only(Platform.JS, ArraysOfObjects, ArraysOfPrimitives)
|
||||||
|
|
||||||
|
only(InvariantArraysOfObjects, ArraysOfPrimitives)
|
||||||
|
doc { "Returns new array which is a copy of the original array." }
|
||||||
|
returns("SELF")
|
||||||
|
returns(Platform.JS, ArraysOfObjects) { "Array<T>" }
|
||||||
|
|
||||||
|
body(Platform.JVM) {
|
||||||
|
"return java.util.Arrays.copyOf(this, size)"
|
||||||
|
}
|
||||||
|
body(Platform.JS) {
|
||||||
|
"return this.asDynamic().slice()"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun f_copyOfResized() =
|
||||||
|
(PrimitiveType.defaultPrimitives.map { ArraysOfPrimitives to it } + (InvariantArraysOfObjects to null)).map {
|
||||||
|
val (family, primitive) = it
|
||||||
|
f("copyOf(newSize: Int)") {
|
||||||
|
only(family)
|
||||||
|
if (family == InvariantArraysOfObjects) {
|
||||||
|
only(Platform.JS, ArraysOfObjects)
|
||||||
|
}
|
||||||
|
|
||||||
|
inline(Platform.JVM, Inline.Only)
|
||||||
|
doc { "Returns new array which is a copy of the original array, resized to the given [newSize]." }
|
||||||
|
val defaultValue: String
|
||||||
|
if (primitive != null) {
|
||||||
|
only(primitive)
|
||||||
|
returns("SELF")
|
||||||
|
defaultValue = when (primitive) {
|
||||||
|
PrimitiveType.Boolean -> false.toString()
|
||||||
|
PrimitiveType.Char -> "'\\u0000'"
|
||||||
|
else -> "ZERO"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
returns { "Array<T?>" }
|
||||||
|
defaultValue = "null"
|
||||||
|
}
|
||||||
|
body(Platform.JVM) {
|
||||||
|
"return java.util.Arrays.copyOf(this, newSize)"
|
||||||
|
}
|
||||||
|
body(Platform.JS) {
|
||||||
|
"""
|
||||||
|
return arrayCopyResize(this, newSize, $defaultValue)
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun f_sortPrimitives() =
|
fun f_sortPrimitives() =
|
||||||
(PrimitiveType.numericPrimitives + PrimitiveType.Char).map { primitive ->
|
(PrimitiveType.numericPrimitives + PrimitiveType.Char).map { primitive ->
|
||||||
f("sort()") {
|
f("sort()") {
|
||||||
@@ -372,5 +413,9 @@ object CommonArrays {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: use reflection later to get all functions of matching type
|
// TODO: use reflection later to get all functions of matching type
|
||||||
fun templates() = f_sortPrimitives() + listOf(f_sort(), f_sortWith(), f_asList(), f_toTypedArray())
|
fun templates() =
|
||||||
|
listOf(f_copyOf(), f_copyOfRange()) +
|
||||||
|
f_copyOfResized() +
|
||||||
|
f_sortPrimitives() +
|
||||||
|
listOf(f_sort(), f_sortWith(), f_asList(), f_toTypedArray())
|
||||||
}
|
}
|
||||||
@@ -233,6 +233,11 @@ class GenericFunction(val signature: String, val keyword: String = "fun") {
|
|||||||
buildFamilies(families.toSet())
|
buildFamilies(families.toSet())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun only(platform: Platform, vararg families: Family) {
|
||||||
|
require(families.isNotEmpty()) { "Need to specify families" }
|
||||||
|
buildFamilies(families.toSet(), platform)
|
||||||
|
}
|
||||||
|
|
||||||
fun only(vararg primitives: PrimitiveType) {
|
fun only(vararg primitives: PrimitiveType) {
|
||||||
only(primitives.asList())
|
only(primitives.asList())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user