| // RUN_PIPELINE_TILL: FRONTEND |
| // FIR_IDENTICAL |
| // LANGUAGE: -BreakContinueInInlineLambdas |
| // RENDER_DIAGNOSTICS_FULL_TEXT |
| // WITH_STDLIB |
| |
| inline fun foo(block: () -> Unit) { block() } |
| |
| inline fun bar(block1: () -> Unit, noinline block2: () -> Unit, crossinline block3: () -> Unit = {}) { |
| block1() |
| block2() |
| block3() |
| } |
| |
| fun test1() { |
| while (true) { |
| foo { <!UNSUPPORTED_FEATURE!>break<!> } |
| foo { <!UNSUPPORTED_FEATURE!>continue<!> } |
| foo(fun () { <!UNSUPPORTED_FEATURE!>break<!> }) |
| foo(fun () { <!UNSUPPORTED_FEATURE!>continue<!> }) |
| } |
| } |
| |
| fun test2() { |
| while (true) { |
| bar({<!UNSUPPORTED_FEATURE!>break<!>}, {}) |
| bar({<!UNSUPPORTED_FEATURE!>continue<!>}, {}) |
| |
| bar(fun () {<!UNSUPPORTED_FEATURE!>break<!>}, fun () {}) |
| bar(fun () {<!UNSUPPORTED_FEATURE!>continue<!>}, fun () {}) |
| } |
| } |
| |
| fun test3() { |
| while (true) { |
| bar({}, { <!BREAK_OR_CONTINUE_JUMPS_ACROSS_FUNCTION_BOUNDARY!>break<!> }, { <!BREAK_OR_CONTINUE_JUMPS_ACROSS_FUNCTION_BOUNDARY!>break<!> }) |
| bar({}, { <!BREAK_OR_CONTINUE_JUMPS_ACROSS_FUNCTION_BOUNDARY!>continue<!> }, { <!BREAK_OR_CONTINUE_JUMPS_ACROSS_FUNCTION_BOUNDARY!>break<!> }) |
| } |
| } |
| |
| /* GENERATED_FIR_TAGS: anonymousFunction, break, continue, crossinline, functionDeclaration, functionalType, inline, |
| lambdaLiteral, noinline, whileLoop */ |