Introduce redundant enum CoroutineSingletons in experimental.intrinsics

This commit is contained in:
Denis Zharkov
2018-08-24 10:55:12 +03:00
parent bda14fcbb2
commit 83a431fca3
@@ -115,6 +115,11 @@ private inline fun <T> buildContinuationByInvokeCall(
* the execution was suspended and will not return any result immediately.
*/
@SinceKotlin("1.1")
public actual val COROUTINE_SUSPENDED: Any get() = CoroutineSuspendedMarker
public actual val COROUTINE_SUSPENDED: Any get() = CoroutineSingletons.COROUTINE_SUSPENDED
private object CoroutineSuspendedMarker
// Using enum here ensures two important properties:
// 1. It makes SafeContinuation serializable with all kinds of serialization frameworks (since all of them natively support enums)
// 2. It improves debugging experience, since you clearly see toString() value of those objects and what package they come from
private enum class CoroutineSingletons {
COROUTINE_SUSPENDED
}