Files
kotlin-fork/compiler/testData/diagnostics/tests/inference/coerceFunctionLiteralToSuspend.kt
T
Ilmir Usmanov 9df411481c Do not coerce function literals to suspend.
The design is to use `suspend fun` instead of coercion, just as suspend
lambdas.
However, this syntax is not supported in the parser. But this is not a
problem, since the coercion lead to internal compiler error.
As a workaround everybody uses suspend lambdas.
 #KT-24860: Fixed
2018-08-30 14:50:33 +03:00

29 lines
672 B
Kotlin
Vendored

// !DIAGNOSTICS: -UNUSED_PARAMETER
fun fail1(c: suspend () -> Unit) {}
fun fail2(c: () -> Unit) {}
fun success1(c: suspend () -> Unit) {}
fun test1() {
fail1(<!TYPE_MISMATCH!>fun () {}<!>)
fun fail2(c: suspend () -> Unit) {}
fail2(<!TYPE_MISMATCH!>fun () {}<!>)
fun success1(c: () -> Unit) {}
success1(fun() {})
}
suspend fun fail3(c: suspend () -> Unit) {}
suspend fun fail4(c: () -> Unit) {}
suspend fun success2(c: suspend () -> Unit) {}
suspend fun test2() {
fail3(<!TYPE_MISMATCH!>fun () {}<!>)
fun fail4(c: suspend () -> Unit) {}
fail4(<!TYPE_MISMATCH!>fun () {}<!>)
fun success2(c: () -> Unit) {}
success2(fun() {})
}