fadde98a86
Consider the code below
```
fun test() {
a@ b@ {
{}
}
}
```
Currently when the code is converted to FIR, label `b` is bound to the
outer lambda and `a` gets bound to the inner lambda because it's not
consumed. This is wrong and also leads transfromation to fail with
exceptions because of the unexpected consumption of `a`.
This change fixes the above issue by designating a specific node in the
AST as the allowed user of a label when the label is added.
10 lines
154 B
Kotlin
Vendored
10 lines
154 B
Kotlin
Vendored
// FIR_IDENTICAL
|
|
fun test() {
|
|
a@ b@ while(true) {
|
|
val f = {
|
|
<!NOT_A_FUNCTION_LABEL!>return@a<!>
|
|
}
|
|
break@b
|
|
}
|
|
}
|