Files
kotlin-fork/compiler/testData/ir/irText/expressions/when.kt.txt
T
2024-02-16 10:19:38 +00:00

65 lines
1.5 KiB
Kotlin
Vendored

object A {
private constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
fun test(x: Any?): String {
return when {
EQEQ(arg0 = x, arg1 = null) -> "null"
EQEQ(arg0 = x, arg1 = A) -> "A"
x is String -> "String"
x !is Number -> "!Number"
setOf<Nothing>().contains<Number>(element = x /*as Number */) -> "nothingness?"
else -> "something"
}
}
fun testComma(x: Int): String {
return { // BLOCK
val tmp_0: Int = x
when {
when {
when {
when {
EQEQ(arg0 = tmp_0, arg1 = 1) -> true
else -> EQEQ(arg0 = tmp_0, arg1 = 2)
} -> true
else -> EQEQ(arg0 = tmp_0, arg1 = 3)
} -> true
else -> EQEQ(arg0 = tmp_0, arg1 = 4)
} -> "1234"
when {
when {
EQEQ(arg0 = tmp_0, arg1 = 5) -> true
else -> EQEQ(arg0 = tmp_0, arg1 = 6)
} -> true
else -> EQEQ(arg0 = tmp_0, arg1 = 7)
} -> "567"
when {
EQEQ(arg0 = tmp_0, arg1 = 8) -> true
else -> EQEQ(arg0 = tmp_0, arg1 = 9)
} -> "89"
else -> "?"
}
}
}
fun testWithSubject(x: Any?): String {
return { // BLOCK
val tmp_1: Any? = x
when {
EQEQ(arg0 = tmp_1, arg1 = null) -> "null"
EQEQ(arg0 = tmp_1, arg1 = A) -> "A"
tmp_1 is String -> "String"
tmp_1 is Number.not() -> "!Number"
setOf<Nothing>().contains<Number>(element = tmp_1 /*as Number */) -> "nothingness?"
else -> "something"
}
}
}