Files
kotlin-fork/compiler/testData/ir/irText/expressions/callableReferences/withVarargViewedAsArray.kt.txt
T

63 lines
1.1 KiB
Plaintext
Vendored

fun sum(vararg args: Int): Int {
var result: Int = 0
{ // BLOCK
val tmp0_iterator: IntIterator = args.iterator()
while (tmp0_iterator.hasNext()) { // BLOCK
val arg: Int = tmp0_iterator.next()
result = result.plus(other = arg)
}
}
return result
}
fun nsum(vararg args: Number): Int {
return sum(args = [*IntArray(size = args.<get-size>(), init = local fun <anonymous>(it: Int): Int {
return args.get(index = it).toInt()
}
)])
}
fun zap(vararg b: String, k: Int = 42) {
}
fun usePlainArgs(fn: Function2<Int, Int, Int>) {
}
fun usePrimitiveArray(fn: Function1<IntArray, Int>) {
}
fun useArray(fn: Function1<Array<Int>, Int>) {
}
fun useStringArray(fn: Function1<Array<String>, Unit>) {
}
fun testPlainArgs() {
usePlainArgs(fn = { // BLOCK
local fun sum(p0: Int, p1: Int): Int {
return sum(args = [p0, p1])
}
::sum
})
}
fun testPrimitiveArrayAsVararg() {
usePrimitiveArray(fn = ::sum)
}
fun testArrayAsVararg() {
useArray(fn = ::nsum)
}
fun testArrayAndDefaults() {
useStringArray(fn = { // BLOCK
local fun zap(p0: Array<out String>) {
zap(b = [*p0])
}
::zap
})
}