Files
kotlin-fork/compiler/testData/ir/irText/expressions/when.kt.txt
T
Dmitriy Novozhilov b454fcc1e0 [FIR] Save IR dumps to .ir.txt files instead of .txt in tests
This is needed to avoid clashes between different dumps from different
  handlers
2021-10-12 17:26:36 +03:00

64 lines
1.6 KiB
Kotlin
Vendored

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