// ISSUE: KT-63973 // WITH_STDLIB tailrec fun foo(vararg items: String, fn: (String) -> T): T = when (items.size) { 0 -> fn("") else -> foo(*items.drop(1).toTypedArray()) { fn(items.first()) } } fun box(): String { val result = buildString { foo("abcde") { append(it) } } if (result != "abcde") { return "Fail: $result" } return "OK" }