Files
kotlin/compiler/testData/codegen/box/extensionFunctions/whenFail.kt
2019-11-19 11:00:09 +03:00

30 lines
579 B
Kotlin
Vendored

// IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JS_IR
// TODO: muted automatically, investigate should it be ran for JS or not
// IGNORE_BACKEND: JS
fun StringBuilder.takeFirst(): Char {
if (this.length == 0) return 0.toChar()
val c = this.get(0)
this.deleteCharAt(0)
return c
}
fun foo(expr: StringBuilder): Int {
val c = expr.takeFirst()
when(c) {
0.toChar() -> throw Exception("zero")
else -> throw Exception("nonzero" + c)
}
}
fun box(): String {
try {
foo(StringBuilder())
return "Fail"
}
catch (e: Exception) {
return "OK"
}
}