blob: d90f7c8fe7356da04940fee66a52c9821db67851 [file]
// TARGET_BACKEND: JVM
// ^^^ java.lang.reflect.* is available only in JDK
// WITH_STDLIB
// FULL_JDK
fun Any.copyValueIfNeeded(): Any {
return when (this) {
is Array<*> -> java.lang.reflect.Array.newInstance(this::class.java.componentType, size).apply {
this as Array<Any?>
(this@copyValueIfNeeded as Array<Any?>).forEachIndexed { i, value -> this[i] = value?.copyValueIfNeeded() }
}
else -> this
}
}
fun box(): String {
val res = arrayOf("FAIL", "OK").copyValueIfNeeded() as Array<String>
return res[1]
}