Files
kotlin-fork/compiler/testData/codegen/box/vararg/inlineClassArraysAsNamedArgumentInVararg.kt
T
Nikita Nazarov 251fdb21c9 [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
2023-12-13 15:30:27 +00:00

36 lines
776 B
Kotlin
Vendored

// !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"
}