1 package kotlinx.coroutines.debug.internal
2 
3 import kotlin.coroutines.*
4 import kotlin.coroutines.jvm.internal.*
5 
6 /**
7  * This class represents the data required by IDEA debugger.
8  * IDEA debugger either directly reads data from the corresponding JVM fields of this class or calls the getters,
9  * so we keep both for maximal flexibility for now.
10  * **DO NOT MAKE BINARY-INCOMPATIBLE CHANGES TO THIS CLASS**.
11  */
12 @Suppress("unused")
13 @PublishedApi
14 internal class DebugCoroutineInfo internal constructor(
15     source: DebugCoroutineInfoImpl,
16     public val context: CoroutineContext // field is used as of 1.4-M3
17 ) {
18     internal val creationStackBottom: CoroutineStackFrame? = source.creationStackBottom // field is used as of 1.4-M3
19     public val sequenceNumber: Long = source.sequenceNumber // field is used as of 1.4-M3
20     public val creationStackTrace = source.creationStackTrace // getter is used as of 1.4-M3
21     public val state: String = source.state // getter is used as of 1.4-M3
22     public val lastObservedThread: Thread? = source.lastObservedThread // field is used as of 1.4-M3
23     public val lastObservedFrame: CoroutineStackFrame? = source.lastObservedFrame // field is used as of 1.4-M3
24     @get:JvmName("lastObservedStackTrace") // method with this name is used as of 1.4-M3
25     public val lastObservedStackTrace: List<StackTraceElement> = source.lastObservedStackTrace()
26 }
27