blob: 1240ef525ecb90668f5bf31cdf13152153e1c8e0 [file]
// IGNORE_BACKEND_K1: ANY
fun box(): String = runAll(
"test1" to { test1(2, 2, 3) },
"test2" to { test2() },
"test3" to { test3() },
"test4" to { test4(2, "2") },
"test5" to { test5(2) },
"test6" to { test6(2) },
"test7" to { test7() },
"test8" to { test8(2) },
"test9" to { test9(2) },
)
fun test1(x: Int, a: Int, b: Int) {
assert(
when (x) {
b -> true
a -> false
else -> true
}
)
}
enum class A {
ONE, TWO
}
fun test2() {
val a: A = A.ONE
assert(
when (a) {
A.ONE -> false
A.TWO -> true
}
)
}
fun test3() {
val a: A = A.ONE
assert(
when (a) {
A.ONE, A.TWO -> false
}
)
}
fun test4(x: Int, a: String) {
assert(
when (x) {
a.toInt() -> false
else -> true
}
)
}
fun test5(x: Int) {
assert(
when (x) {
in 1..10 -> x == 3
else -> true
}
)
}
fun test6(x: Any) {
assert(
when (x) {
is Int -> x == 3
else -> true
}
)
}
fun test7() {
assert(
when (val x = 2) {
in 1..10 -> x == 3
else -> true
}
)
}
fun test8(x: Any) {
assert(
when (x) {
is Int if x == 1 -> true
is Int if x == 2 -> false
else -> true
}
)
}
fun test9(x: Int) {
assert(
when (val a = x + x + x) {
x -> true
x + x -> true
else -> false
}
)
}