class K { | |
val x: String = "OK" | |
} | |
inline fun <T> Array<out T>.ifEmpty(body: () -> Array<out T>): Array<out T> = | |
if (size == 0) body() else this | |
inline fun <T> Array<out T>.f(p: (T) -> String): String = | |
p(this[0]) | |
fun box(): String = | |
emptyArray<K>() | |
.ifEmpty { arrayOf(K()) } | |
.f(K::x) |