| // !LANGUAGE: +SuspendOnlySamConversions |
| // TARGET_BACKEND: JVM_IR |
| |
| fun interface FI { |
| suspend fun call() // suspending now(!!!) |
| } |
| |
| fun accept(fi: FI): Int = 1 |
| |
| suspend fun foo() {} |
| fun foo2() {} |
| |
| fun box(): String { |
| val fi0: () -> Unit = {} |
| accept(fi0) |
| |
| val fi: suspend () -> Unit = {} // Lambda of a suspending(!!!) functional type |
| accept(fi) // ERROR: Type mismatch. Required: FI Found: suspend () → Unit |
| |
| accept(::foo) |
| val x1 = ::foo |
| accept(x1) // ERROR: Type mismatch. Required: FI Found: suspend () → Unit |
| |
| accept(::foo2) |
| val x2 = ::foo2 |
| accept(x2) // ERROR: Type mismatch. Required: FI Found: suspend () → Unit |
| |
| return "OK" |
| } |
| |