Files
kotlin/compiler/testData/codegen/box/when/stringOptimization/nullability.kt
2018-06-09 19:15:38 +03:00

49 lines
1.1 KiB
Kotlin
Vendored

// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
// CHECK_CASES_COUNT: function=foo1 count=2
// CHECK_IF_COUNT: function=foo1 count=1
// CHECK_CASES_COUNT: function=foo2 count=4
// CHECK_IF_COUNT: function=foo2 count=0
import kotlin.test.assertEquals
fun foo1(x : String?) : String {
when (x) {
"abc", "cde" -> return "abc_cde"
"efg", "ghi", null -> return "efg_ghi"
}
return "other"
}
fun foo2(x : String?) : String {
when (x) {
"abc", "cde" -> return "abc_cde"
"efg", "ghi" -> return "efg_ghi"
else -> return "other"
}
}
fun box() : String {
//foo1
assertEquals("abc_cde", foo1("abc"))
assertEquals("abc_cde", foo1("cde"))
assertEquals("efg_ghi", foo1("efg"))
assertEquals("efg_ghi", foo1("ghi"))
assertEquals("efg_ghi", foo1(null))
assertEquals("other", foo1("xyz"))
//foo2
assertEquals("abc_cde", foo2("abc"))
assertEquals("abc_cde", foo2("cde"))
assertEquals("efg_ghi", foo2("efg"))
assertEquals("efg_ghi", foo2("ghi"))
assertEquals("other", foo2("xyz"))
assertEquals("other", foo2(null))
return "OK"
}