mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 08:31:26 +00:00
41 lines
1.0 KiB
Kotlin
Vendored
41 lines
1.0 KiB
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
|
|
// WITH_RUNTIME
|
|
|
|
import java.util.Arrays
|
|
|
|
class MyCollection<T>(val delegate: Collection<T>): Collection<T> by delegate {
|
|
public fun toArray(): Array<Any?> {
|
|
val a = arrayOfNulls<Any?>(3)
|
|
a[0] = 0
|
|
a[1] = 1
|
|
a[2] = 2
|
|
return a
|
|
}
|
|
public fun <E> toArray(array: Array<E>): Array<E> {
|
|
val asIntArray = array as Array<Int>
|
|
asIntArray[0] = 0
|
|
asIntArray[1] = 1
|
|
asIntArray[2] = 2
|
|
return array
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
val collection = MyCollection(Arrays.asList(2, 3, 9)) as java.util.Collection<*>
|
|
|
|
val array1 = collection.toArray()
|
|
val array2 = collection.toArray(arrayOfNulls<Int>(3) as Array<Int>)
|
|
|
|
if (!array1.isArrayOf<Any>()) return (array1 as Object).getClass().toString()
|
|
if (!array2.isArrayOf<Int>()) return (array2 as Object).getClass().toString()
|
|
|
|
val s1 = Arrays.toString(array1)
|
|
val s2 = Arrays.toString(array2)
|
|
|
|
if (s1 != "[0, 1, 2]") return "s1 = $s1"
|
|
if (s2 != "[0, 1, 2]") return "s2 = $s2"
|
|
|
|
return "OK"
|
|
}
|