[FIR] Generate spread element for unsigned arrays

Previously when unsigned arrays were passed as vararg in a named form the necessary spread element wasn't generated, which resulted in a compilation error.

^KT-63514 fixed
This commit is contained in:
Nikita Nazarov
2023-12-08 16:04:42 +01:00
committed by Space Cloud
parent dbca7358af
commit 251fdb21c9
22 changed files with 153 additions and 2 deletions
@@ -0,0 +1,35 @@
// !LANGUAGE: +AllowAssigningArrayElementsToVarargsInNamedFormForFunctions
// ISSUE: KT-63514
// WITH_STDLIB
fun foo(vararg arr: Int): Int {
return arr.sum()
}
fun bar(vararg arr: UInt): UInt {
return arr.sum()
}
fun baz(vararg arr: ULong): ULong {
return arr.sum()
}
fun quas(vararg arr: UShort): UInt {
return arr.sum()
}
fun wex(vararg arr: UByte): UInt {
return arr.sum()
}
fun box(): String {
val x = foo(arr = intArrayOf(1, 2, 3))
val y = bar(arr = uintArrayOf(1u, 2u, 3u))
val z = baz(arr = ulongArrayOf(1uL, 2uL, 3uL))
val q = quas(arr = ushortArrayOf(1u, 2u, 3u))
val w = wex(arr = ubyteArrayOf(1u, 2u, 3u))
if (x + y.toInt() + z.toInt() + q.toInt() + w.toInt() == 30) {
return "OK"
}
return "Fail"
}