import kotlin.test.assertEquals fun foo(vararg a: T) = a.size() inline fun bar(block: () -> T): Array { assertEquals(2, foo(block(), block())) return array(block(), block(), block()) } inline fun empty() = array() fun box(): String { var i = 0 val a: Array = bar() { i++; i.toString() } assertEquals("345", a.join("")) i = 0 val b: Array = bar() { i++ } assertEquals("234", b.map { it.toString() }.join("")) val c: Array = empty() assertEquals(0, c.size()) return "OK" }