Fix deserialization of kotlin.suspend when LV=1.3 is used
Before this change, kotlin.suspend was being loaded as having a common function type instead of suspend function type. With LV=1.3, we expect that suspend function types should have new Continuation interface as a last type argument, while kotlin.suspend is built with LV=1.2 and has old Continuation. This change might be reverted once stdlib will be rebuilt with LV=1.3 NB: kotlin.suspend doesn't need to be intrinsified since it only returns its parameter with checkcast to kotlinin.jvm.functions.Function1 (i.e., it doesn't refer the coroutines package) #KT-24861 Fixed
This commit is contained in:
+3
-3
@@ -1,10 +1,10 @@
|
||||
// !API_VERSION: 1.2
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// WITH_RUNTIME
|
||||
// COMMON_COROUTINES_TEST
|
||||
// WITH_COROUTINES
|
||||
import helpers.*
|
||||
import kotlin.coroutines.experimental.*
|
||||
import kotlin.coroutines.experimental.intrinsics.*
|
||||
import COROUTINES_PACKAGE.*
|
||||
import COROUTINES_PACKAGE.intrinsics.*
|
||||
|
||||
suspend fun suspendHere(v: String): String = suspendCoroutineOrReturn { x ->
|
||||
x.resume(v)
|
||||
|
||||
Reference in New Issue
Block a user