Disallow non-local break/continue in crossinline lambdas

This commit is contained in:
Pavel Mikhailovskii
2022-09-09 19:24:02 +02:00
committed by Space
parent 79885c770d
commit fe5a6fd511
20 changed files with 137 additions and 97 deletions
@@ -1,5 +1,4 @@
// LANGUAGE: +BreakContinueInInlineLambdas
// TARGET_BACKEND: JVM_IR
// IGNORE_BACKEND_FIR: JVM_IR
// !IGNORE_ERRORS
// WITH_STDLIB
@@ -11,6 +10,8 @@ inline fun bar(block1: () -> Unit, noinline block2: () -> Unit) {
block2()
}
inline fun baz(crossinline block: () -> Unit) { block() }
inline fun <T> Iterable<T>.myForEach(action: (T) -> Unit): Unit {
for (element in this) action(element)
}
@@ -108,4 +109,10 @@ fun test7() {
break
}
}
}
fun test8() {
while (true) {
baz({break})
}
}