Add some tests on adapted references with varargs and reflection

Also rename "varargAndDefaults" test directory to "adaptedReferences"
This commit is contained in:
Alexander Udalov
2020-04-06 18:44:36 +02:00
parent 66995fe1a5
commit fa879e667f
27 changed files with 718 additions and 674 deletions
@@ -0,0 +1,28 @@
// IGNORE_BACKEND_FIR: JVM_IR
// !LANGUAGE: +NewInference
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"
}