Refine coroutine/suspend functions ABI

- `invoke` method must always start a suspend functions
- For creation of coroutine that has not been started yet, there are
two special internal interfaces `SuspendFunction0`/`SuspendFunction1`
This commit is contained in:
Denis Zharkov
2016-12-20 10:50:16 +03:00
parent 75174b4fba
commit d0ba048342
10 changed files with 145 additions and 15 deletions
@@ -900,6 +900,14 @@ public final class kotlin/jvm/internal/StringCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/StringCompanionObject;
}
public abstract interface class kotlin/jvm/internal/SuspendFunction0 {
public abstract fun create (Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
}
public abstract interface class kotlin/jvm/internal/SuspendFunction1 {
public abstract fun create (Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
}
public class kotlin/jvm/internal/TypeIntrinsics {
public fun <init> ()V
public static fun asMutableCollection (Ljava/lang/Object;)Ljava/util/Collection;