c7435ba760
We are going to deprecate `WITH_RUNTIME` directive. The main reason behind this change is that `WITH_STDLIB` directive better describes its meaning, specifically it will add kotlin stdlib to test's classpath.
40 lines
807 B
Kotlin
Vendored
40 lines
807 B
Kotlin
Vendored
// WITH_STDLIB
|
|
// CHECK_CASES_COUNT: function=exhaustive count=3
|
|
// CHECK_IF_COUNT: function=exhaustive count=0
|
|
// CHECK_CASES_COUNT: function=nonExhaustive count=3
|
|
// CHECK_IF_COUNT: function=nonExhaustive count=0
|
|
|
|
fun exhaustive(x: Int): Int {
|
|
var r: Int
|
|
when (x) {
|
|
1 -> r = 1
|
|
2 -> r = 2
|
|
3 -> r = 3
|
|
else -> r = 4
|
|
}
|
|
|
|
return r
|
|
}
|
|
|
|
fun nonExhaustive(x: Int): Int {
|
|
var r: Int = 4
|
|
when (x) {
|
|
1 -> r = 1
|
|
2 -> r = 2
|
|
3 -> r = 3
|
|
}
|
|
|
|
return r
|
|
}
|
|
|
|
fun box(): String {
|
|
var result = (0..3).map(::exhaustive).joinToString()
|
|
|
|
if (result != "4, 1, 2, 3") return "exhaustive:" + result
|
|
|
|
result = (0..3).map(::nonExhaustive).joinToString()
|
|
|
|
if (result != "4, 1, 2, 3") return "non-exhaustive:" + result
|
|
return "OK"
|
|
}
|