// KJS_WITH_FULL_RUNTIME // WITH_RUNTIME import kotlin.test.assertEquals fun foo(vararg a: T) = a.size inline fun bar(a: Array, block: () -> T): Array { assertEquals(4, foo(*a, block(), block())) return arrayOf(*a, block(), block()) } inline fun empty() = arrayOf() fun box(): String { var i = 0 val a: Array = bar(arrayOf("1", "2")) { i++; i.toString() } assertEquals("1234", a.joinToString("")) i = 0 val b: Array = bar(arrayOf(0, 1)) { i++ } assertEquals("0123", b.map { it.toString() }.joinToString("")) return "OK" }