251fdb21c9
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
36 lines
776 B
Kotlin
Vendored
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"
|
|
}
|