JVM_IR: fix suspendCoroutineUninterceptedOrReturn

This commit is contained in:
Georgy Bronnikov
2020-03-11 18:01:15 +03:00
parent 3cbfdd19f5
commit fded6fb494
4 changed files with 47 additions and 1 deletions
@@ -0,0 +1,33 @@
// FILE: Intrinsics.kt
@file:kotlin.jvm.JvmName("IntrinsicsKt")
@file:kotlin.jvm.JvmMultifileClass
package kotlin.coroutines.intrinsics
import kotlin.coroutines.*
import kotlin.internal.InlineOnly
@InlineOnly
@Suppress("UNUSED_PARAMETER", "RedundantSuspendModifier")
public suspend inline fun <T> suspendCoroutineUninterceptedOrReturn(crossinline block: (Continuation<T>) -> Any?): T =
throw NotImplementedError("Implementation of suspendCoroutineUninterceptedOrReturn is intrinsic")
// FILE: Annotations.kt
package kotlin.internal
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)
@Retention(AnnotationRetention.BINARY)
internal annotation class InlineOnly
// FILE: test.kt
package kotlin.coroutines
import kotlin.coroutines.intrinsics.*
import kotlin.internal.InlineOnly
@InlineOnly
public suspend inline fun <T> suspendTest(crossinline block: (Continuation<T>) -> Unit): T =
suspendCoroutineUninterceptedOrReturn { c: Continuation<T> -> }
// @kotlin/coroutines/TestKt.class:
// 2 InlineMarker.mark