Add coroutines debug metadata: compiler

#KT-25557 Fixed
 #KT-25559 Fixed
This commit is contained in:
Ilmir Usmanov
2018-08-22 15:51:58 +03:00
committed by Ilya Gorbunov
parent c4287118d8
commit 22f9a6ce08
24 changed files with 443 additions and 52 deletions
@@ -0,0 +1,109 @@
// !LANGUAGE: +ReleaseCoroutines
// IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM
// WITH_RUNTIME
// WITH_COROUTINES
@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER", "CANNOT_OVERRIDE_INVISIBLE_MEMBER")
import helpers.*
import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.*
import kotlin.coroutines.jvm.internal.*
suspend fun getSpilledToVariable() = suspendCoroutineUninterceptedOrReturn<Array<String>> {
(it as BaseContinuationImpl).getSpilledVariableFieldMapping()
}
fun Array<String>.toMap(): Map<String, String> {
val res = hashMapOf<String, String>()
for (i in 0..(size - 1) step 2) {
res[get(i)] = get(i + 1)
}
return res
}
var continuation: Continuation<Unit>? = null
suspend fun suspendHere() = suspendCoroutineUninterceptedOrReturn<Unit> {
continuation = it
COROUTINE_SUSPENDED
}
suspend fun dummy() {}
suspend fun named(): String {
dummy()
val s1 = ""
val s2 = ""
val s3 = ""
val s4 = ""
val s5 = ""
val s6 = ""
val s7 = ""
val s8 = ""
val s9 = ""
val map = getSpilledToVariable().toMap()
return map["L$0"] + map["L$1"] + map["L$2"] + map["L$3"] + map["L$4"] + map["L$5"] + map["L$6"] + map["L$7"] + map["L$8"]
}
suspend fun suspended() {
dummy()
val ss = ""
suspendHere()
}
suspend fun multipleLocalsInOneSlot() {
for (first in 0 until 1) {
suspendHere()
}
for (second in 0 until 1) {
suspendHere()
}
}
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
var res: String = ""
builder {
res = named()
}
if (res != "s1s2s3s4s5s6s7s8s9") {
return "" + res
}
builder {
dummy()
val a = ""
res = getSpilledToVariable().toMap()["L$0"] ?: "lambda fail"
}
if (res != "a") {
return "" + res
}
builder {
suspended()
}
res = (continuation!! as BaseContinuationImpl).getSpilledVariableFieldMapping().toMap()["L$0"] ?: "suspended fail"
if (res != "ss") {
return "" + res
}
builder {
multipleLocalsInOneSlot()
}
res = (continuation!! as BaseContinuationImpl).getSpilledVariableFieldMapping().toMap()["I$0"] ?: "multipleLocalsInOneSlot fail 1"
if (res != "first") {
return "" + res
}
continuation!!.resumeWith(SuccessOrFailure.success(Unit))
res = (continuation!! as BaseContinuationImpl).getSpilledVariableFieldMapping().toMap()["I$0"] ?: "multipleLocalsInOneSlot fail 2"
if (res != "second") {
return "" + res
}
return "OK"
}
@@ -0,0 +1,71 @@
// !LANGUAGE: +ReleaseCoroutines
// IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM
// WITH_RUNTIME
// FULL_JDK
// WITH_COROUTINES
@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER", "CANNOT_OVERRIDE_INVISIBLE_MEMBER")
import helpers.*
import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.*
import kotlin.coroutines.jvm.internal.*
private fun BaseContinuationImpl.getSourceFileAndLineNumber(): Pair<String, Int> {
return (getStackTraceElement()?.fileName ?: "") to (getStackTraceElement()?.lineNumber ?: -1)
}
suspend fun getSourceFileAndLineNumberFromContinuation() = suspendCoroutineUninterceptedOrReturn<Pair<String, Int>> {
(it as BaseContinuationImpl).getSourceFileAndLineNumber()
}
var continuation: Continuation<*>? = null
suspend fun suspendHere() = suspendCoroutineUninterceptedOrReturn<Unit> {
continuation = it
COROUTINE_SUSPENDED
}
suspend fun dummy() {}
suspend fun named(): Pair<String, Int> {
dummy()
return getSourceFileAndLineNumberFromContinuation()
}
suspend fun suspended() {
dummy()
suspendHere()
}
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
var res: Any? = null
builder {
res = named()
}
if (res != Pair("runtimeDebugMetadata.kt", 35)) {
return "" + res
}
builder {
dummy()
res = getSourceFileAndLineNumberFromContinuation()
}
if (res != Pair("runtimeDebugMetadata.kt", 57)) {
return "" + res
}
builder {
suspended()
}
res = (continuation!! as BaseContinuationImpl).getSourceFileAndLineNumber()
if (res != Pair("runtimeDebugMetadata.kt", 40)) {
return "" + res
}
return "OK"
}
@@ -1,4 +1,5 @@
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
public final class CrossinlineKt$box$1$filter$$inlined$source$1$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
@@ -6,8 +7,8 @@ public final class CrossinlineKt$box$1$filter$$inlined$source$1$1 {
field L$3: java.lang.Object
field L$4: java.lang.Object
field L$5: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$box$1$filter$$inlined$source$1
inner class CrossinlineKt$box$1$filter$$inlined$source$1
inner class CrossinlineKt$box$1$filter$$inlined$source$1$1
@@ -15,14 +16,15 @@ public final class CrossinlineKt$box$1$filter$$inlined$source$1$1 {
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
public final class CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
field L$2: java.lang.Object
field L$3: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1
inner class CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1
inner class CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1$1
@@ -53,8 +55,8 @@ public final class CrossinlineKt$box$1$filter$$inlined$source$1 {
@kotlin.Metadata
public final class CrossinlineKt$box$1$fold$$inlined$consumeEach$1$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$box$1$fold$$inlined$consumeEach$1
inner class CrossinlineKt$box$1$fold$$inlined$consumeEach$1
inner class CrossinlineKt$box$1$fold$$inlined$consumeEach$1$1
@@ -73,6 +75,7 @@ public final class CrossinlineKt$box$1$fold$$inlined$consumeEach$1 {
public @org.jetbrains.annotations.Nullable method send(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
public final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1 {
field L$0: java.lang.Object
@@ -81,8 +84,8 @@ public final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1 {
field L$3: java.lang.Object
field L$4: java.lang.Object
field L$5: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1
@@ -90,14 +93,15 @@ public final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1 {
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
public final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
field L$2: java.lang.Object
field L$3: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2$1
@@ -135,6 +139,7 @@ public final class CrossinlineKt$box$1$invokeSuspend$$inlined$fold$1 {
public @org.jetbrains.annotations.Nullable method send(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class CrossinlineKt$box$1 {
synthetic final field $res: kotlin.jvm.internal.Ref$IntRef
@@ -153,8 +158,8 @@ final class CrossinlineKt$box$1 {
@kotlin.Metadata
public final class CrossinlineKt$consumeEach$2$send$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$consumeEach$2
inner class CrossinlineKt$consumeEach$2
inner class CrossinlineKt$consumeEach$2$send$1
@@ -173,6 +178,7 @@ public final class CrossinlineKt$consumeEach$2 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
public final class CrossinlineKt$filter$$inlined$source$1$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
@@ -180,8 +186,8 @@ public final class CrossinlineKt$filter$$inlined$source$1$1 {
field L$3: java.lang.Object
field L$4: java.lang.Object
field L$5: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$filter$$inlined$source$1
inner class CrossinlineKt$filter$$inlined$source$1
inner class CrossinlineKt$filter$$inlined$source$1$1
@@ -189,14 +195,15 @@ public final class CrossinlineKt$filter$$inlined$source$1$1 {
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
public final class CrossinlineKt$filter$$inlined$source$1$lambda$1$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
field L$2: java.lang.Object
field L$3: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$filter$$inlined$source$1$lambda$1
inner class CrossinlineKt$filter$$inlined$source$1$lambda$1
inner class CrossinlineKt$filter$$inlined$source$1$lambda$1$1
@@ -227,8 +234,8 @@ public final class CrossinlineKt$filter$$inlined$source$1 {
@kotlin.Metadata
public final class CrossinlineKt$fold$$inlined$consumeEach$1$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$fold$$inlined$consumeEach$1
inner class CrossinlineKt$fold$$inlined$consumeEach$1
inner class CrossinlineKt$fold$$inlined$consumeEach$1$1
@@ -248,6 +255,7 @@ public final class CrossinlineKt$fold$$inlined$consumeEach$1 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
public final class CrossinlineKt$range$$inlined$source$1$1 {
field I$0: int
field L$0: java.lang.Object
@@ -255,8 +263,8 @@ public final class CrossinlineKt$range$$inlined$source$1$1 {
field L$2: java.lang.Object
field L$3: java.lang.Object
field L$4: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$range$$inlined$source$1
inner class CrossinlineKt$range$$inlined$source$1
inner class CrossinlineKt$range$$inlined$source$1$1
@@ -276,8 +284,8 @@ public final class CrossinlineKt$range$$inlined$source$1 {
@kotlin.Metadata
public final class CrossinlineKt$source$1$consume$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$source$1
inner class CrossinlineKt$source$1
inner class CrossinlineKt$source$1$consume$1
@@ -1,4 +1,5 @@
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
public final class CrossinlineKt$box$1$filter$$inlined$source$1$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
@@ -6,8 +7,8 @@ public final class CrossinlineKt$box$1$filter$$inlined$source$1$1 {
field L$3: java.lang.Object
field L$4: java.lang.Object
field L$5: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$box$1$filter$$inlined$source$1
inner class CrossinlineKt$box$1$filter$$inlined$source$1
inner class CrossinlineKt$box$1$filter$$inlined$source$1$1
@@ -15,14 +16,15 @@ public final class CrossinlineKt$box$1$filter$$inlined$source$1$1 {
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
public final class CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
field L$2: java.lang.Object
field L$3: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1
inner class CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1
inner class CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1$1
@@ -53,8 +55,8 @@ public final class CrossinlineKt$box$1$filter$$inlined$source$1 {
@kotlin.Metadata
public final class CrossinlineKt$box$1$fold$$inlined$consumeEach$1$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$box$1$fold$$inlined$consumeEach$1
inner class CrossinlineKt$box$1$fold$$inlined$consumeEach$1
inner class CrossinlineKt$box$1$fold$$inlined$consumeEach$1$1
@@ -73,6 +75,7 @@ public final class CrossinlineKt$box$1$fold$$inlined$consumeEach$1 {
public @org.jetbrains.annotations.Nullable method send(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
public final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1 {
field L$0: java.lang.Object
@@ -81,8 +84,8 @@ public final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1 {
field L$3: java.lang.Object
field L$4: java.lang.Object
field L$5: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1
@@ -90,14 +93,15 @@ public final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1 {
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
public final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
field L$2: java.lang.Object
field L$3: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2$1
@@ -135,6 +139,7 @@ public final class CrossinlineKt$box$1$invokeSuspend$$inlined$fold$1 {
public @org.jetbrains.annotations.Nullable method send(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class CrossinlineKt$box$1 {
synthetic final field $res: kotlin.jvm.internal.Ref$IntRef
@@ -153,8 +158,8 @@ final class CrossinlineKt$box$1 {
@kotlin.Metadata
public final class CrossinlineKt$consumeEach$2$send$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$consumeEach$2
inner class CrossinlineKt$consumeEach$2
inner class CrossinlineKt$consumeEach$2$send$1
@@ -173,6 +178,7 @@ public final class CrossinlineKt$consumeEach$2 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
public final class CrossinlineKt$filter$$inlined$source$1$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
@@ -180,8 +186,8 @@ public final class CrossinlineKt$filter$$inlined$source$1$1 {
field L$3: java.lang.Object
field L$4: java.lang.Object
field L$5: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$filter$$inlined$source$1
inner class CrossinlineKt$filter$$inlined$source$1
inner class CrossinlineKt$filter$$inlined$source$1$1
@@ -189,14 +195,15 @@ public final class CrossinlineKt$filter$$inlined$source$1$1 {
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
public final class CrossinlineKt$filter$$inlined$source$1$lambda$1$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
field L$2: java.lang.Object
field L$3: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$filter$$inlined$source$1$lambda$1
inner class CrossinlineKt$filter$$inlined$source$1$lambda$1
inner class CrossinlineKt$filter$$inlined$source$1$lambda$1$1
@@ -227,8 +234,8 @@ public final class CrossinlineKt$filter$$inlined$source$1 {
@kotlin.Metadata
public final class CrossinlineKt$fold$$inlined$consumeEach$1$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$fold$$inlined$consumeEach$1
inner class CrossinlineKt$fold$$inlined$consumeEach$1
inner class CrossinlineKt$fold$$inlined$consumeEach$1$1
@@ -248,6 +255,7 @@ public final class CrossinlineKt$fold$$inlined$consumeEach$1 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
public final class CrossinlineKt$range$$inlined$source$1$1 {
field I$0: int
field I$1: int
@@ -256,8 +264,8 @@ public final class CrossinlineKt$range$$inlined$source$1$1 {
field L$2: java.lang.Object
field L$3: java.lang.Object
field L$4: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$range$$inlined$source$1
inner class CrossinlineKt$range$$inlined$source$1
inner class CrossinlineKt$range$$inlined$source$1$1
@@ -277,8 +285,8 @@ public final class CrossinlineKt$range$$inlined$source$1 {
@kotlin.Metadata
public final class CrossinlineKt$source$1$consume$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: CrossinlineKt$source$1
inner class CrossinlineKt$source$1
inner class CrossinlineKt$source$1$consume$1
@@ -1,3 +1,4 @@
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class InlineWithStateMachineKt$box$1 {
synthetic final field $result: kotlin.jvm.internal.Ref$ObjectRef
@@ -11,22 +12,24 @@ final class InlineWithStateMachineKt$box$1 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class InlineWithStateMachineKt$mainSuspend$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class InlineWithStateMachineKt$mainSuspend$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
public final class InlineWithStateMachineKt$suspendHere$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class InlineWithStateMachineKt$suspendHere$1
public method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
@@ -1,3 +1,4 @@
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class InlineWithoutStateMachineKt$box$1 {
synthetic final field $result: kotlin.jvm.internal.Ref$ObjectRef
@@ -12,11 +13,12 @@ final class InlineWithoutStateMachineKt$box$1 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class InlineWithoutStateMachineKt$complexSuspend$1 {
field L$0: java.lang.Object
field L$1: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class InlineWithoutStateMachineKt$complexSuspend$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
@@ -1,3 +1,4 @@
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class SimpleKt$box$1 {
synthetic final field $result: kotlin.jvm.internal.Ref$ObjectRef
@@ -1,3 +1,4 @@
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class WhenUnitKt$box$1 {
field label: int
@@ -1,7 +1,8 @@
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class CoroutineContextIntrinsicKt$notTailCall$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class CoroutineContextIntrinsicKt$notTailCall$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
@@ -1,8 +1,9 @@
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class Controller$multipleSuspensions$1 {
field L$0: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: Controller
inner class Controller$multipleSuspensions$1
method <init>(p0: Controller, p1: kotlin.coroutines.Continuation): void
@@ -10,10 +11,11 @@ final class Controller$multipleSuspensions$1 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class Controller$nonTailCall$1 {
field L$0: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
synthetic final field this$0: Controller
inner class Controller$nonTailCall$1
method <init>(p0: Controller, p1: kotlin.coroutines.Continuation): void
@@ -31,6 +33,7 @@ public final class Controller {
public final @org.jetbrains.annotations.Nullable method tailCall(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class CoroutineFieldsKt$box$1 {
synthetic final field $result: kotlin.jvm.internal.Ref$ObjectRef
@@ -1,8 +1,9 @@
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class OomInReturnUnitKt$test$1 {
field L$0: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class OomInReturnUnitKt$test$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
@@ -5,34 +5,38 @@ public final class Generic {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class TailSuspendUnitFunKt$callsIntNotTailCall$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class TailSuspendUnitFunKt$callsIntNotTailCall$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class TailSuspendUnitFunKt$lambdaAsParameterNotTailCall$1 {
field L$0: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class TailSuspendUnitFunKt$lambdaAsParameterNotTailCall$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class TailSuspendUnitFunKt$multipleExitPointsNotTailCall$1 {
field Z$0: boolean
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class TailSuspendUnitFunKt$multipleExitPointsNotTailCall$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class TailSuspendUnitFunKt$multipleExitPointsWhen$2 {
field label: int
@@ -44,9 +48,10 @@ final class TailSuspendUnitFunKt$multipleExitPointsWhen$2 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class TailSuspendUnitFunKt$notTailCall$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class TailSuspendUnitFunKt$notTailCall$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
@@ -63,9 +68,10 @@ final class TailSuspendUnitFunKt$useGenericIngerType$2 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class TailSuspendUnitFunKt$useNullableUnit$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class TailSuspendUnitFunKt$useNullableUnit$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
@@ -1,7 +1,8 @@
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class TryCatchTailCallKt$catchException$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class TryCatchTailCallKt$catchException$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
@@ -5,34 +5,38 @@ public final class Generic {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class UnreachableKt$callsIntNotTailCall$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class UnreachableKt$callsIntNotTailCall$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class UnreachableKt$lambdaAsParameterNotTailCall$1 {
field L$0: java.lang.Object
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class UnreachableKt$lambdaAsParameterNotTailCall$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class UnreachableKt$multipleExitPointsNotTailCall$1 {
field Z$0: boolean
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class UnreachableKt$multipleExitPointsNotTailCall$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class UnreachableKt$multipleExitPointsWhen$2 {
field label: int
@@ -44,9 +48,10 @@ final class UnreachableKt$multipleExitPointsWhen$2 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class UnreachableKt$notTailCall$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class UnreachableKt$notTailCall$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
@@ -63,9 +68,10 @@ final class UnreachableKt$useGenericInferType$2 {
}
@kotlin.Metadata
@kotlin.coroutines.jvm.internal.DebugMetadata
final class UnreachableKt$useNullableUnit$1 {
synthetic field data: java.lang.Object
field label: int
synthetic field result: java.lang.Object
inner class UnreachableKt$useNullableUnit$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object