Files
kotlin-fork/js/js.translator/testData/box/labels/nestedInlineLabels.kt
T
2018-09-12 09:49:25 +03:00

47 lines
799 B
Kotlin
Vendored

// EXPECTED_REACHABLE_NODES: 1285
package foo
var state = false
inline fun blockImpl(p: () -> Unit) {
if (state) return
p()
}
inline fun block(p: () -> Unit) {
if (state) return
blockImpl(p)
}
fun test(x: Int): Int {
block outer@ {
block inner@ {
if (x < 10) return@inner
if (x == 10) return@outer
block innermost@ {
if (x > 500) {
return 500500
}
}
return x
}
if (x < 5) return@outer
return x + 10
}
return x + 100
}
fun box(): String {
assertEquals(16, test(6))
assertEquals(104, test(4))
assertEquals(110, test(110))
assertEquals(11, test(11))
assertEquals(500500, test(502))
return "OK"
}