diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineCodegen.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineCodegen.kt index c9ac887f850..ac5de0a4fca 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineCodegen.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineCodegen.kt @@ -432,8 +432,10 @@ class CoroutineCodegenForNamedFunction private constructor( override fun generateClosureBody() { generateResumeImpl() - generateGetLabelMethod() - generateSetLabelMethod() + if (!languageVersionSettings.isReleaseCoroutines()) { + generateGetLabelMethod() + generateSetLabelMethod() + } v.newField( JvmDeclarationOrigin.NO_ORIGIN, Opcodes.ACC_SYNTHETIC or AsmUtil.NO_FLAG_PACKAGE_PRIVATE, diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineTransformerMethodVisitor.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineTransformerMethodVisitor.kt index a9fc0fec973..d32d8816e2a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineTransformerMethodVisitor.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineTransformerMethodVisitor.kt @@ -128,7 +128,7 @@ class CoroutineTransformerMethodVisitor( LineNumberNode(lineNumber, tableSwitchLabel), VarInsnNode(Opcodes.ASTORE, suspendMarkerVarIndex), VarInsnNode(Opcodes.ALOAD, continuationIndex), - createInsnForReadingLabel(), + *withInstructionAdapter { getLabel() }.toArray(), TableSwitchInsnNode( 0, suspensionPoints.size, @@ -165,37 +165,35 @@ class CoroutineTransformerMethodVisitor( methodNode.instructions.set(last, InsnNode(Opcodes.ACONST_NULL)) } - private fun createInsnForReadingLabel() = + private fun InstructionAdapter.getLabel() { if (isForNamedFunction && !languageVersionSettings.isReleaseCoroutines()) - MethodInsnNode( - Opcodes.INVOKEVIRTUAL, + invokevirtual( classBuilderForCoroutineState.thisName, "getLabel", Type.getMethodDescriptor(Type.INT_TYPE), false ) else - FieldInsnNode( - Opcodes.GETFIELD, + getfield( computeLabelOwner(languageVersionSettings, classBuilderForCoroutineState.thisName).internalName, COROUTINE_LABEL_FIELD_NAME, Type.INT_TYPE.descriptor ) + } - private fun createInsnForSettingLabel() = + private fun InstructionAdapter.setLabel() { if (isForNamedFunction && !languageVersionSettings.isReleaseCoroutines()) - MethodInsnNode( - Opcodes.INVOKEVIRTUAL, + invokevirtual( classBuilderForCoroutineState.thisName, "setLabel", Type.getMethodDescriptor(Type.VOID_TYPE, Type.INT_TYPE), false ) else - FieldInsnNode( - Opcodes.PUTFIELD, + putfield( computeLabelOwner(languageVersionSettings, classBuilderForCoroutineState.thisName).internalName, COROUTINE_LABEL_FIELD_NAME, Type.INT_TYPE.descriptor ) + } private fun updateMaxStack(methodNode: MethodNode) { methodNode.instructions.resetLabels() @@ -248,12 +246,7 @@ class CoroutineTransformerMethodVisitor( visitVarInsn(Opcodes.ASTORE, continuationIndex) visitVarInsn(Opcodes.ALOAD, continuationIndex) - invokevirtual( - classBuilderForCoroutineState.thisName, - "getLabel", - Type.getMethodDescriptor(Type.INT_TYPE), - false - ) + getLabel() iconst(1 shl 31) and(Type.INT_TYPE) @@ -261,21 +254,11 @@ class CoroutineTransformerMethodVisitor( visitVarInsn(Opcodes.ALOAD, continuationIndex) dup() - invokevirtual( - classBuilderForCoroutineState.thisName, - "getLabel", - Type.getMethodDescriptor(Type.INT_TYPE), - false - ) + getLabel() iconst(1 shl 31) sub(Type.INT_TYPE) - invokevirtual( - classBuilderForCoroutineState.thisName, - "setLabel", - Type.getMethodDescriptor(Type.VOID_TYPE, Type.INT_TYPE), - false - ) + setLabel() goTo(afterCoroutineStateCreated) @@ -489,11 +472,11 @@ class CoroutineTransformerMethodVisitor( // Save state insertBefore( suspension.suspensionCallBegin, - insnListOf( - VarInsnNode(Opcodes.ALOAD, continuationIndex), - *withInstructionAdapter { iconst(id) }.toArray(), - createInsnForSettingLabel() - ) + withInstructionAdapter { + visitVarInsn(Opcodes.ALOAD, continuationIndex) + iconst(id) + setLabel() + } ) insert(suspension.tryCatchBlockEndLabelAfterSuspensionCall, withInstructionAdapter { diff --git a/compiler/testData/codegen/box/coroutines/tailCallOptimizations/crossinline.txt b/compiler/testData/codegen/box/coroutines/tailCallOptimizations/crossinline.txt index c4072596e43..2c93d7524e7 100644 --- a/compiler/testData/codegen/box/coroutines/tailCallOptimizations/crossinline.txt +++ b/compiler/testData/codegen/box/coroutines/tailCallOptimizations/crossinline.txt @@ -12,9 +12,7 @@ public final class CrossinlineKt$box$1$filter$$inlined$source$1$1 { inner class CrossinlineKt$box$1$filter$$inlined$source$1 inner class CrossinlineKt$box$1$filter$$inlined$source$1$1 public method (p0: CrossinlineKt$box$1$filter$$inlined$source$1, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -28,9 +26,7 @@ public final class CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1$1 { inner class CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1 inner class CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1$1 public method (p0: CrossinlineKt$box$1$filter$$inlined$source$1$lambda$1, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -62,9 +58,7 @@ public final class CrossinlineKt$box$1$fold$$inlined$consumeEach$1$1 { inner class CrossinlineKt$box$1$fold$$inlined$consumeEach$1 inner class CrossinlineKt$box$1$fold$$inlined$consumeEach$1$1 public method (p0: CrossinlineKt$box$1$fold$$inlined$consumeEach$1, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -92,9 +86,7 @@ public final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1 { inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1 inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1 public method (p0: CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -108,9 +100,7 @@ public final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2$1 { inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2 inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2$1 public method (p0: CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -168,9 +158,7 @@ public final class CrossinlineKt$consumeEach$2$send$1 { inner class CrossinlineKt$consumeEach$2 inner class CrossinlineKt$consumeEach$2$send$1 public method (p0: CrossinlineKt$consumeEach$2, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -197,9 +185,7 @@ public final class CrossinlineKt$filter$$inlined$source$1$1 { inner class CrossinlineKt$filter$$inlined$source$1 inner class CrossinlineKt$filter$$inlined$source$1$1 public method (p0: CrossinlineKt$filter$$inlined$source$1, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -213,9 +199,7 @@ public final class CrossinlineKt$filter$$inlined$source$1$lambda$1$1 { inner class CrossinlineKt$filter$$inlined$source$1$lambda$1 inner class CrossinlineKt$filter$$inlined$source$1$lambda$1$1 public method (p0: CrossinlineKt$filter$$inlined$source$1$lambda$1, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -247,9 +231,7 @@ public final class CrossinlineKt$fold$$inlined$consumeEach$1$1 { inner class CrossinlineKt$fold$$inlined$consumeEach$1 inner class CrossinlineKt$fold$$inlined$consumeEach$1$1 public method (p0: CrossinlineKt$fold$$inlined$consumeEach$1, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -278,9 +260,7 @@ public final class CrossinlineKt$range$$inlined$source$1$1 { inner class CrossinlineKt$range$$inlined$source$1 inner class CrossinlineKt$range$$inlined$source$1$1 public method (p0: CrossinlineKt$range$$inlined$source$1, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -301,9 +281,7 @@ public final class CrossinlineKt$source$1$consume$1 { inner class CrossinlineKt$source$1 inner class CrossinlineKt$source$1$consume$1 public method (p0: CrossinlineKt$source$1, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata diff --git a/compiler/testData/codegen/box/coroutines/tailCallOptimizations/inlineWithStateMachine.txt b/compiler/testData/codegen/box/coroutines/tailCallOptimizations/inlineWithStateMachine.txt index 8ce3aee5101..0553e85a38d 100644 --- a/compiler/testData/codegen/box/coroutines/tailCallOptimizations/inlineWithStateMachine.txt +++ b/compiler/testData/codegen/box/coroutines/tailCallOptimizations/inlineWithStateMachine.txt @@ -19,9 +19,7 @@ final class InlineWithStateMachineKt$mainSuspend$1 { field label: int inner class InlineWithStateMachineKt$mainSuspend$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -32,9 +30,7 @@ public final class InlineWithStateMachineKt$suspendHere$1 { field label: int inner class InlineWithStateMachineKt$suspendHere$1 public method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata diff --git a/compiler/testData/codegen/box/coroutines/tailCallOptimizations/inlineWithoutStateMachine.txt b/compiler/testData/codegen/box/coroutines/tailCallOptimizations/inlineWithoutStateMachine.txt index 70bf0ae02af..83e2bc48fe3 100644 --- a/compiler/testData/codegen/box/coroutines/tailCallOptimizations/inlineWithoutStateMachine.txt +++ b/compiler/testData/codegen/box/coroutines/tailCallOptimizations/inlineWithoutStateMachine.txt @@ -19,9 +19,7 @@ final class InlineWithoutStateMachineKt$complexSuspend$1 { field label: int inner class InlineWithoutStateMachineKt$complexSuspend$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata diff --git a/compiler/testData/codegen/bytecodeListing/coroutineContextIntrinsic_1_3.txt b/compiler/testData/codegen/bytecodeListing/coroutineContextIntrinsic_1_3.txt index 3e0c7c40eac..a06dc48fcd1 100644 --- a/compiler/testData/codegen/bytecodeListing/coroutineContextIntrinsic_1_3.txt +++ b/compiler/testData/codegen/bytecodeListing/coroutineContextIntrinsic_1_3.txt @@ -4,9 +4,7 @@ final class CoroutineContextIntrinsicKt$notTailCall$1 { field label: int inner class CoroutineContextIntrinsicKt$notTailCall$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata diff --git a/compiler/testData/codegen/bytecodeListing/coroutineFields_1_3.txt b/compiler/testData/codegen/bytecodeListing/coroutineFields_1_3.txt index 6608a4363ae..9bdc2983c3b 100644 --- a/compiler/testData/codegen/bytecodeListing/coroutineFields_1_3.txt +++ b/compiler/testData/codegen/bytecodeListing/coroutineFields_1_3.txt @@ -6,9 +6,7 @@ final class Controller$multipleSuspensions$1 { synthetic final field this$0: Controller inner class Controller$multipleSuspensions$1 method (p0: Controller, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -19,9 +17,7 @@ final class Controller$nonTailCall$1 { synthetic final field this$0: Controller inner class Controller$nonTailCall$1 method (p0: Controller, p1: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata diff --git a/compiler/testData/codegen/bytecodeListing/oomInReturnUnit_1_3.txt b/compiler/testData/codegen/bytecodeListing/oomInReturnUnit_1_3.txt index 25b38de33c0..a84b217ad88 100644 --- a/compiler/testData/codegen/bytecodeListing/oomInReturnUnit_1_3.txt +++ b/compiler/testData/codegen/bytecodeListing/oomInReturnUnit_1_3.txt @@ -5,9 +5,7 @@ final class OomInReturnUnitKt$test$1 { field label: int inner class OomInReturnUnitKt$test$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata diff --git a/compiler/testData/codegen/bytecodeListing/tailcall/tailSuspendUnitFun_1_3.txt b/compiler/testData/codegen/bytecodeListing/tailcall/tailSuspendUnitFun_1_3.txt index 5391a7402aa..6e5f34df5b7 100644 --- a/compiler/testData/codegen/bytecodeListing/tailcall/tailSuspendUnitFun_1_3.txt +++ b/compiler/testData/codegen/bytecodeListing/tailcall/tailSuspendUnitFun_1_3.txt @@ -10,9 +10,7 @@ final class TailSuspendUnitFunKt$callsIntNotTailCall$1 { field label: int inner class TailSuspendUnitFunKt$callsIntNotTailCall$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -22,9 +20,7 @@ final class TailSuspendUnitFunKt$lambdaAsParameterNotTailCall$1 { field label: int inner class TailSuspendUnitFunKt$lambdaAsParameterNotTailCall$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -34,9 +30,7 @@ final class TailSuspendUnitFunKt$multipleExitPointsNotTailCall$1 { field label: int inner class TailSuspendUnitFunKt$multipleExitPointsNotTailCall$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -56,9 +50,7 @@ final class TailSuspendUnitFunKt$notTailCall$1 { field label: int inner class TailSuspendUnitFunKt$notTailCall$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -77,9 +69,7 @@ final class TailSuspendUnitFunKt$useNullableUnit$1 { field label: int inner class TailSuspendUnitFunKt$useNullableUnit$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata diff --git a/compiler/testData/codegen/bytecodeListing/tailcall/tryCatchTailCall_1_3.txt b/compiler/testData/codegen/bytecodeListing/tailcall/tryCatchTailCall_1_3.txt index 17ad85684bc..c6aa1f7be59 100644 --- a/compiler/testData/codegen/bytecodeListing/tailcall/tryCatchTailCall_1_3.txt +++ b/compiler/testData/codegen/bytecodeListing/tailcall/tryCatchTailCall_1_3.txt @@ -4,9 +4,7 @@ final class TryCatchTailCallKt$catchException$1 { field label: int inner class TryCatchTailCallKt$catchException$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata diff --git a/compiler/testData/codegen/bytecodeListing/tailcall/unreachable_1_3.txt b/compiler/testData/codegen/bytecodeListing/tailcall/unreachable_1_3.txt index 51396890c4f..9f145dec8ea 100644 --- a/compiler/testData/codegen/bytecodeListing/tailcall/unreachable_1_3.txt +++ b/compiler/testData/codegen/bytecodeListing/tailcall/unreachable_1_3.txt @@ -10,9 +10,7 @@ final class UnreachableKt$callsIntNotTailCall$1 { field label: int inner class UnreachableKt$callsIntNotTailCall$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -22,9 +20,7 @@ final class UnreachableKt$lambdaAsParameterNotTailCall$1 { field label: int inner class UnreachableKt$lambdaAsParameterNotTailCall$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -34,9 +30,7 @@ final class UnreachableKt$multipleExitPointsNotTailCall$1 { field label: int inner class UnreachableKt$multipleExitPointsNotTailCall$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -56,9 +50,7 @@ final class UnreachableKt$notTailCall$1 { field label: int inner class UnreachableKt$notTailCall$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata @@ -77,9 +69,7 @@ final class UnreachableKt$useNullableUnit$1 { field label: int inner class UnreachableKt$useNullableUnit$1 method (p0: kotlin.coroutines.Continuation): void - synthetic final method getLabel(): int public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object - synthetic final method setLabel(p0: int): void } @kotlin.Metadata