Files
kotlin-fork/compiler/testData/codegen/box/when/kt60212.kt
T
2023-07-21 17:27:17 +00:00

35 lines
599 B
Kotlin
Vendored

fun box(): String {
testIfs()
testWhen()
return "OK"
}
// From KT-60212
fun testIfs() {
val b1 = 0b11011111
if (b1 and 0b10000000 == 0) {
fail("A")
} else if (b1 and 0b11100000 == 0b11000000) {
return
} else {
fail("C")
}
}
// Snippet from kotlinx-io
fun testWhen() {
val v = test(0xdf)
if (v != 1) fail("D")
}
fun test(b0: Int) = when {
b0 and 0x80 == 0 -> 0
b0 and 0xe0 == 0xc0 -> 1
b0 and 0xf0 == 0xe0 -> 2
b0 and 0xf8 == 0xf0 -> 3
else -> -1
}
fun fail(message: String): Nothing = throw Exception(message)