blob: 2d38487ba5e94fcb82fcd2c86e0cb1e47e156c40 [file]
// FILE: lib.kt
package foo
var state = false
inline fun blockImpl(p: () -> Unit) {
if (state) return
p()
}
inline fun block(p: () -> Unit) {
if (state) return
blockImpl(p)
}
// FILE: main.kt
package foo
import kotlin.test.*
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"
}