Files
kotlin-fork/backend.native/tests/external/codegen/box/when/whenSafeCallSubjectEvaluatedOnce.kt
T
2017-11-16 17:21:48 +03:00

19 lines
395 B
Kotlin

var subjectEvaluated = 0
fun String.foo() = length.also { ++subjectEvaluated }
fun test(s: String?) =
when (s?.foo()) {
0 -> "zero"
1 -> "one"
2 -> "two"
else -> "other"
}
fun box(): String {
val t = test("12")
if (t != "two") return "Fail: $t"
if (subjectEvaluated != 1) return "Fail: subjectEvaluated=$subjectEvaluated"
return "OK"
}