Files
kotlin-fork/js/js.translator/testData/box/inline/inlinedObjectLiteralIsCheck.kt
T
2022-04-11 10:37:21 +00:00

30 lines
574 B
Kotlin
Vendored

// EXPECTED_REACHABLE_NODES: 1282
interface I {
fun ok(): String
}
inline fun ok(): I {
return object : I {
override fun ok() = "OK"
}
}
@JsName("convolutedOk")
@JsExport
inline fun convolutedOk(): I {
val fail = object : I {
override fun ok() = "fail"
}.ok()
return ok()
}
// CHECK_BREAKS_COUNT: function=box count=0 TARGET_BACKENDS=JS_IR
// CHECK_LABELS_COUNT: function=box name=$l$block count=0 TARGET_BACKENDS=JS_IR
fun box(): String {
val ok = js("_").convolutedOk()
if (ok !is I) return "fail"
return ok.ok()
}