Disallow break or continue across a function boundary
Code containing breaks or continues that attempt to jump across a
function boundary weren't detected during analysis but would crash
the compiler during code generation. Add diagnostics for these kinds
of errors.
Example:
fun f() {
while (true) {
fun inner() {
continue
}
}
}
#KT-4334 Fixed
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
fun call(f: () -> Unit) = f()
|
||||
|
||||
fun f1() {
|
||||
@outer while (true) {
|
||||
call {
|
||||
<!BREAK_OR_CONTINUE_JUMPS_ACROSS_FUNCTION_BOUNDARY!>break@outer<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun f2() {
|
||||
do {
|
||||
fun inner() {
|
||||
<!BREAK_OR_CONTINUE_JUMPS_ACROSS_FUNCTION_BOUNDARY!>continue<!>
|
||||
}
|
||||
} while (true)
|
||||
}
|
||||
Reference in New Issue
Block a user