Associate vararg of unsigned types with corresponding arrays

This is a first step, full support will be added later

 #KT-24880 In Progress
This commit is contained in:
Mikhail Zarechenskiy
2018-06-14 15:17:43 +03:00
parent 3e45a1529c
commit 333411c57d
13 changed files with 165 additions and 16 deletions
@@ -0,0 +1,34 @@
// !LANGUAGE: +InlineClasses
// !SKIP_METADATA_VERSION_CHECK
// WITH_UNSIGNED
fun uint(vararg us: UInt): UIntArray = us
fun nullableUInt(vararg us: UInt?): UIntArray {
val ls = us.filterNotNull()
return UIntArray(ls.size) { ls[it] }
}
inline fun inlinedUInt(vararg us: UInt): UIntArray = us
fun box(): String {
val uints = uint(1u, 2u, 3u)
if (sum(*uints) != 6u) return "Fail 1"
val nullableUInts = nullableUInt(1u, null, 2u, null)
if (sum(*nullableUInts) != 3u) return "Fail 2"
val inlinedUInts = inlinedUInt(1u, 3u)
if (sum(*inlinedUInts) != 4u) return "Fail 3"
return "OK"
}
fun sum(vararg us: UInt): UInt {
var sum = 0u
for (i in us) {
sum += i
}
return sum
}