mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-10 15:53:46 +00:00
31 lines
861 B
Kotlin
Vendored
31 lines
861 B
Kotlin
Vendored
// IGNORE_BACKEND_FIR: JVM_IR
|
|
// !LANGUAGE: +NewInference
|
|
// DONT_RUN_GENERATED_CODE: JS
|
|
// IGNORE_BACKEND_FIR: JVM_IR
|
|
|
|
fun sum(vararg args: Int): Int {
|
|
var result = 0
|
|
for (arg in args)
|
|
result += arg
|
|
return result
|
|
}
|
|
|
|
fun nsum(vararg args: Number) = sum(*IntArray(args.size) { args[it].toInt() })
|
|
|
|
fun usePlainArgs(fn: (Int, Int) -> Int) = fn(1, 1)
|
|
fun usePrimitiveArray(fn: (IntArray) -> Int) = fn(intArrayOf(1, 1, 1))
|
|
fun useArray(fn: (Array<Int>) -> Int) = fn(arrayOf(1, 1, 1, 1))
|
|
|
|
fun box(): String {
|
|
var result = usePlainArgs(::sum)
|
|
if (result != 2)
|
|
return "Fail: plain args $result != 2"
|
|
result = usePrimitiveArray(::sum)
|
|
if (result != 3)
|
|
return "Fail: primitive array $result != 3"
|
|
result = useArray(::nsum)
|
|
if (result != 4)
|
|
return "Fail: reference array $result != 4"
|
|
return "OK"
|
|
}
|