[FIR] Prohibit suspend anonymous functions in statement position

^KT-62018 Fixed
^KT-62019
This commit is contained in:
Dmitriy Novozhilov
2023-12-12 17:02:11 +02:00
committed by Space Team
parent cae6e0ee0f
commit fb00c1dfb6
23 changed files with 116 additions and 5 deletions
@@ -0,0 +1,7 @@
// ISSUE: KT-57991
fun foo() {
<!ANONYMOUS_SUSPEND_FUNCTION!>suspend<!> fun() {
}
}
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
// ISSUE: KT-57991
fun foo() {
@@ -4,6 +4,6 @@ fun <T> produce(arg: () -> T): T = arg()
fun main() {
produce {
<!ARGUMENT_TYPE_MISMATCH!>suspend fun() {}<!> // CCE
<!ARGUMENT_TYPE_MISMATCH!><!ANONYMOUS_SUSPEND_FUNCTION!>suspend<!> fun() {}<!> // CCE
}
}
@@ -0,0 +1,11 @@
// FIR_DUMP
fun foo() {
<!ANONYMOUS_SUSPEND_FUNCTION!>suspend<!> fun() {
bar()
}
}
suspend fun bar() {
}
@@ -1,4 +1,4 @@
FILE: suspendCallFromAnonymousSuspend.kt
FILE: suspendCallFromAnonymousSuspend.fir.kt
public final fun foo(): R|kotlin/Unit| {
suspend fun <anonymous>(): R|kotlin/Unit| <inline=Unknown> {
R|/bar|()
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
// FIR_DUMP
fun foo() {