// WITH_STDLIB import kotlin.test.* fun copyArray(vararg data: T): Array = data inline fun reifiedCopyArray(vararg data: T): Array = data fun copyBooleanArray(vararg data: Boolean): BooleanArray = data fun copyByteArray(vararg data: Byte): ByteArray = data fun copyCharArray(vararg data: Char): CharArray = data fun copyShortArray(vararg data: Short): ShortArray = data fun copyIntArray(vararg data: Int): IntArray = data fun copyLongArray(vararg data: Long): LongArray = data fun copyFloatArray(vararg data: Float): FloatArray = data fun copyDoubleArray(vararg data: Double): DoubleArray = data fun copyStringArray(vararg data: String): Array = data fun box(): String { val sarr = arrayOf("OK") val sarr2 = copyArray(*sarr) sarr[0] = "Array was not copied" assertEquals(sarr2[0], "OK", "Failed: Array") var rsarr = arrayOf("OK") var rsarr2 = reifiedCopyArray(*rsarr) rsarr[0] = "Array was not copied" assertEquals(rsarr2[0], "OK", "Failed: Array, reified copy") val boolArray = booleanArrayOf(true) val boolArray2 = copyBooleanArray(*boolArray) boolArray[0] = false assertEquals(boolArray2[0], true, "Failed: BooleanArray") val byteArray = byteArrayOf(1) val byteArray2 = copyByteArray(*byteArray) byteArray[0] = 42 assertEquals(1, byteArray2[0], "Failed: ByteArray") val charArray = charArrayOf('a') val charArray2 = copyCharArray(*charArray) charArray[0] = 'b' assertEquals(charArray2[0], 'a', "Failed: CharArray") val shortArray = shortArrayOf(1) val shortArray2 = copyShortArray(*shortArray) shortArray[0] = 42 assertEquals(1, shortArray2[0], "Failed: ShortArray") val iarr = IntArray(1) iarr[0] = 1 val iarr2 = copyIntArray(*iarr) iarr[0] = 42 assertEquals(1, iarr2[0], "Failed: IntArray") val longArray = longArrayOf(1L) val longArray2 = copyLongArray(*longArray) longArray[0] = 42L assertEquals(1L, longArray2[0], "Failed: LongArray") val floatArray = floatArrayOf(1.0f) val floatArray2 = copyFloatArray(*floatArray) floatArray[0] = 42.0f assertEquals(1.0f, floatArray2[0], "Failed: FloatArray") val doubleArray = doubleArrayOf(1.0) val doubleArray2 = copyDoubleArray(*doubleArray) doubleArray[0] = 42.0 assertEquals(1.0, doubleArray2[0], "Failed: DoubleArray") val stringArray = arrayOf("abc") val stringArray2 = copyStringArray(*stringArray) stringArray[0] = "def" assertEquals("abc", stringArray2[0], "Failed: Array") return "OK" }