blob: 6cc4d47dc236bf99ffc1cdebb7f9f33f624faa23 [file] [log] [blame]
fun booleanVararg(vararg xs: Boolean) {
if (xs.size != 1 && xs[0] != true) throw AssertionError()
}
fun byteVararg(vararg xs: Byte) {
if (xs.size != 1 && xs[0] != 1.toByte()) throw AssertionError()
}
fun shortVararg(vararg xs: Short) {
if (xs.size != 1 && xs[0] != 1.toShort()) throw AssertionError()
}
fun intVararg(vararg xs: Int) {
if (xs.size != 1 && xs[0] != 1) throw AssertionError()
}
fun longVararg(vararg xs: Long) {
if (xs.size != 1 && xs[0] != 1L) throw AssertionError()
}
fun floatVararg(vararg xs: Float) {
if (xs.size != 1 && xs[0] != 1.0f) throw AssertionError()
}
fun doubleVararg(vararg xs: Double) {
if (xs.size != 1 && xs[0] != 1.0) throw AssertionError()
}
fun anyVararg(vararg xs: Any?) {
if (xs.size != 1 && (xs[0] != 1 && xs[0] != null)) throw AssertionError()
}
fun <T> genericVararg(vararg xs: T) {
if (xs.size != 1 && (xs[0] != 1 && xs[0] != null)) throw AssertionError()
}
fun box(): String {
booleanVararg(*booleanArrayOf(true))
booleanVararg(*BooleanArray(1))
booleanVararg(*BooleanArray(1) { true })
booleanVararg(xs = *booleanArrayOf(true))
booleanVararg(xs = *BooleanArray(1))
booleanVararg(xs = *BooleanArray(1) { true })
byteVararg(*byteArrayOf(1))
byteVararg(*ByteArray(1))
byteVararg(*ByteArray(1) { 1 })
byteVararg(xs = *byteArrayOf(1))
byteVararg(xs = *ByteArray(1))
byteVararg(xs = *ByteArray(1) { 1 })
shortVararg(*shortArrayOf(1))
shortVararg(*ShortArray(1))
shortVararg(*ShortArray(1) { 1 })
shortVararg(xs = *shortArrayOf(1))
shortVararg(xs = *ShortArray(1))
shortVararg(xs = *ShortArray(1) { 1 })
intVararg(*intArrayOf(1))
intVararg(*IntArray(1))
intVararg(*IntArray(1) { 1 })
intVararg(xs = *intArrayOf(1))
intVararg(xs = *IntArray(1))
intVararg(xs = *IntArray(1) { 1 })
longVararg(*longArrayOf(1L))
longVararg(*LongArray(1))
longVararg(*LongArray(1) { 1L })
longVararg(xs = *longArrayOf(1L))
longVararg(xs = *LongArray(1))
longVararg(xs = *LongArray(1) { 1L })
floatVararg(*floatArrayOf(1.0f))
floatVararg(*FloatArray(1))
floatVararg(*FloatArray(1) { 1.0f })
floatVararg(xs = *floatArrayOf(1.0f))
floatVararg(xs = *FloatArray(1))
floatVararg(xs = *FloatArray(1) { 1.0f })
doubleVararg(*doubleArrayOf(1.0))
doubleVararg(*DoubleArray(1))
doubleVararg(*DoubleArray(1) { 1.0 })
doubleVararg(xs = *doubleArrayOf(1.0))
doubleVararg(xs = *DoubleArray(1))
doubleVararg(xs = *DoubleArray(1) { 1.0 })
anyVararg(*arrayOf(1))
anyVararg(*Array(1) { 1 })
anyVararg(*arrayOfNulls(1))
anyVararg(xs = *arrayOf(1))
anyVararg(xs = *Array(1) { 1 })
anyVararg(xs = *arrayOfNulls(1))
genericVararg(*arrayOf(1))
genericVararg(*Array(1) { 1 })
genericVararg(*arrayOfNulls<Int>(1))
genericVararg(xs = *arrayOf(1))
genericVararg(xs = *Array(1) { 1 })
genericVararg(xs = *arrayOfNulls<Int>(1))
return "OK"
}