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