Improve line numbers handling in serialization intrinsic
Fix nullable serializers on top-level & method with incorrect receiver Improve handling of different runtime versions
This commit is contained in:
+22
-7
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.backend.jvm.mapping.mapClass
|
|||||||
import org.jetbrains.kotlin.codegen.AsmUtil
|
import org.jetbrains.kotlin.codegen.AsmUtil
|
||||||
import org.jetbrains.kotlin.codegen.inline.ReifiedTypeInliner
|
import org.jetbrains.kotlin.codegen.inline.ReifiedTypeInliner
|
||||||
import org.jetbrains.kotlin.codegen.inline.newMethodNodeWithCorrectStackSize
|
import org.jetbrains.kotlin.codegen.inline.newMethodNodeWithCorrectStackSize
|
||||||
|
import org.jetbrains.kotlin.config.ApiVersion
|
||||||
import org.jetbrains.kotlin.descriptors.findClassAcrossModuleDependencies
|
import org.jetbrains.kotlin.descriptors.findClassAcrossModuleDependencies
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||||
@@ -34,6 +35,7 @@ import org.jetbrains.kotlinx.serialization.compiler.backend.jvm.kSerializerArray
|
|||||||
import org.jetbrains.kotlinx.serialization.compiler.backend.jvm.kSerializerType
|
import org.jetbrains.kotlinx.serialization.compiler.backend.jvm.kSerializerType
|
||||||
import org.jetbrains.kotlinx.serialization.compiler.backend.jvm.stringArrayType
|
import org.jetbrains.kotlinx.serialization.compiler.backend.jvm.stringArrayType
|
||||||
import org.jetbrains.kotlinx.serialization.compiler.backend.jvm.stringType
|
import org.jetbrains.kotlinx.serialization.compiler.backend.jvm.stringType
|
||||||
|
import org.jetbrains.kotlinx.serialization.compiler.diagnostic.VersionReader
|
||||||
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames.ENUM_SERIALIZER_FACTORY_FUNC_NAME
|
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames.ENUM_SERIALIZER_FACTORY_FUNC_NAME
|
||||||
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames.MARKED_ENUM_SERIALIZER_FACTORY_FUNC_NAME
|
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames.MARKED_ENUM_SERIALIZER_FACTORY_FUNC_NAME
|
||||||
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializersClassIds.contextSerializerId
|
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializersClassIds.contextSerializerId
|
||||||
@@ -57,8 +59,7 @@ class SerializationJvmIrIntrinsicSupport(val jvmBackendContext: JvmBackendContex
|
|||||||
object Simple : IntrinsicType(stubCallDescriptor)
|
object Simple : IntrinsicType(stubCallDescriptor)
|
||||||
|
|
||||||
class WithModule(val storedIndex: Int) :
|
class WithModule(val storedIndex: Int) :
|
||||||
IntrinsicType(stubCallDescriptorWithModule) {
|
IntrinsicType(stubCallDescriptorWithModule)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@@ -68,7 +69,12 @@ class SerializationJvmIrIntrinsicSupport(val jvmBackendContext: JvmBackendContex
|
|||||||
|| method.typeParameters.size != 1
|
|| method.typeParameters.size != 1
|
||||||
|| method.valueParameters.isNotEmpty()
|
|| method.valueParameters.isNotEmpty()
|
||||||
) return null
|
) return null
|
||||||
return ReifiedSerializerMethod(method.extensionReceiverParameter != null)
|
val receiver = method.extensionReceiverParameter
|
||||||
|
return if (receiver == null)
|
||||||
|
ReifiedSerializerMethod(withModule = false)
|
||||||
|
else if (receiver.type.classFqName?.asString() == "kotlinx.serialization.modules.SerializersModule")
|
||||||
|
ReifiedSerializerMethod(withModule = true)
|
||||||
|
else null
|
||||||
}
|
}
|
||||||
|
|
||||||
val serializersModuleType: Type = Type.getObjectType("kotlinx/serialization/modules/SerializersModule")
|
val serializersModuleType: Type = Type.getObjectType("kotlinx/serialization/modules/SerializersModule")
|
||||||
@@ -95,7 +101,10 @@ class SerializationJvmIrIntrinsicSupport(val jvmBackendContext: JvmBackendContex
|
|||||||
val storedIndex = frameMap.enterTemp(materialVal.type)
|
val storedIndex = frameMap.enterTemp(materialVal.type)
|
||||||
mv.store(storedIndex, materialVal.type)
|
mv.store(storedIndex, materialVal.type)
|
||||||
IntrinsicType.WithModule(storedIndex)
|
IntrinsicType.WithModule(storedIndex)
|
||||||
} else IntrinsicType.Simple
|
} else {
|
||||||
|
codegen.markLineNumber(expression)
|
||||||
|
IntrinsicType.Simple
|
||||||
|
}
|
||||||
SerializationJvmIrIntrinsicSupport(codegen.context).generateSerializerForType(
|
SerializationJvmIrIntrinsicSupport(codegen.context).generateSerializerForType(
|
||||||
argument,
|
argument,
|
||||||
mv,
|
mv,
|
||||||
@@ -124,8 +133,14 @@ class SerializationJvmIrIntrinsicSupport(val jvmBackendContext: JvmBackendContex
|
|||||||
return module.findClassAcrossModuleDependencies(classId)?.let { jvmBackendContext.referenceClass(it) }
|
return module.findClassAcrossModuleDependencies(classId)?.let { jvmBackendContext.referenceClass(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val currentVersion = VersionReader.getVersionsForCurrentModuleFromTrace(module, jvmBackendContext.state.bindingTrace)
|
||||||
|
?.implementationVersion
|
||||||
|
|
||||||
override val runtimeHasEnumSerializerFactoryFunctions: Boolean
|
override val runtimeHasEnumSerializerFactoryFunctions: Boolean
|
||||||
get() = false // TODO
|
get() = currentVersion != null && currentVersion > ApiVersion.parse("1.4.0")!!
|
||||||
|
|
||||||
|
private val hasNewContextSerializerSignature: Boolean
|
||||||
|
get() = currentVersion != null && currentVersion >= ApiVersion.parse("1.2.0")!!
|
||||||
|
|
||||||
private fun findTypeSerializerOrContext(argType: IrType): IrClassSymbol? =
|
private fun findTypeSerializerOrContext(argType: IrType): IrClassSymbol? =
|
||||||
emptyGenerator.findTypeSerializerOrContextUnchecked(this, argType)
|
emptyGenerator.findTypeSerializerOrContextUnchecked(this, argType)
|
||||||
@@ -243,8 +258,8 @@ class SerializationJvmIrIntrinsicSupport(val jvmBackendContext: JvmBackendContex
|
|||||||
) { genericArg ->
|
) { genericArg ->
|
||||||
assert(putReifyMarkerIfNeeded(genericArg, intrinsicType))
|
assert(putReifyMarkerIfNeeded(genericArg, intrinsicType))
|
||||||
}
|
}
|
||||||
if (type.isMarkedNullable()) adapter.wrapStackValueIntoNullableSerializer()
|
|
||||||
}
|
}
|
||||||
|
if (type.isMarkedNullable()) adapter.wrapStackValueIntoNullableSerializer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -405,7 +420,7 @@ class SerializationJvmIrIntrinsicSupport(val jvmBackendContext: JvmBackendContex
|
|||||||
aconst(typeMapper.mapTypeCommon(kType, TypeMappingMode.GENERIC_ARGUMENT))
|
aconst(typeMapper.mapTypeCommon(kType, TypeMappingMode.GENERIC_ARGUMENT))
|
||||||
AsmUtil.wrapJavaClassIntoKClass(this)
|
AsmUtil.wrapJavaClassIntoKClass(this)
|
||||||
signature.append(AsmTypes.K_CLASS_TYPE.descriptor)
|
signature.append(AsmTypes.K_CLASS_TYPE.descriptor)
|
||||||
if (serializer.owner.classId == contextSerializerId && serializer.constructors.any { it.owner.valueParameters.size == 3 }) { // TODO: this isn't working with LAZY IR CLASS
|
if (serializer.owner.classId == contextSerializerId && hasNewContextSerializerSignature) {
|
||||||
// append new additional arguments
|
// append new additional arguments
|
||||||
val fallbackDefaultSerializer = findTypeSerializer(this@SerializationJvmIrIntrinsicSupport, kType)
|
val fallbackDefaultSerializer = findTypeSerializer(this@SerializationJvmIrIntrinsicSupport, kType)
|
||||||
if (fallbackDefaultSerializer != null && fallbackDefaultSerializer != serializer) {
|
if (fallbackDefaultSerializer != null && fallbackDefaultSerializer != serializer) {
|
||||||
|
|||||||
@@ -74,19 +74,19 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
public final static kotlinx.serialization.KSerializer listSer()
|
public final static kotlinx.serialization.KSerializer listSer()
|
||||||
|
|
||||||
public final static void test() {
|
public final static void test() {
|
||||||
|
LABEL (L0)
|
||||||
|
LINENUMBER (28)
|
||||||
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||||
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||||
POP
|
POP
|
||||||
LABEL (L0)
|
LABEL (L1)
|
||||||
LINENUMBER (29)
|
LINENUMBER (29)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L1)
|
LABEL (L2)
|
||||||
|
LINENUMBER (47)
|
||||||
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||||
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||||
LABEL (L2)
|
|
||||||
LINENUMBER (45)
|
|
||||||
NOP
|
|
||||||
LABEL (L3)
|
LABEL (L3)
|
||||||
POP
|
POP
|
||||||
LABEL (L4)
|
LABEL (L4)
|
||||||
@@ -94,44 +94,40 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L5)
|
LABEL (L5)
|
||||||
|
LINENUMBER (48)
|
||||||
GETSTATIC (Box, Companion, LBox$Companion;)
|
GETSTATIC (Box, Companion, LBox$Companion;)
|
||||||
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||||
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||||
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
||||||
LABEL (L6)
|
LABEL (L6)
|
||||||
LINENUMBER (46)
|
|
||||||
NOP
|
|
||||||
LABEL (L7)
|
|
||||||
POP
|
POP
|
||||||
LABEL (L8)
|
LABEL (L7)
|
||||||
LINENUMBER (31)
|
LINENUMBER (31)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L9)
|
LABEL (L8)
|
||||||
|
LINENUMBER (49)
|
||||||
GETSTATIC (Box, Companion, LBox$Companion;)
|
GETSTATIC (Box, Companion, LBox$Companion;)
|
||||||
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||||
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||||
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
||||||
LABEL (L10)
|
LABEL (L9)
|
||||||
LINENUMBER (47)
|
|
||||||
NOP
|
|
||||||
LABEL (L11)
|
|
||||||
POP
|
POP
|
||||||
LABEL (L12)
|
LABEL (L10)
|
||||||
LINENUMBER (32)
|
LINENUMBER (32)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L13)
|
LABEL (L11)
|
||||||
|
LINENUMBER (50)
|
||||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||||
DUP
|
DUP
|
||||||
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||||
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||||
LABEL (L14)
|
LABEL (L12)
|
||||||
LINENUMBER (48)
|
|
||||||
NOP
|
|
||||||
LABEL (L15)
|
|
||||||
POP
|
POP
|
||||||
|
LABEL (L13)
|
||||||
|
LINENUMBER (34)
|
||||||
GETSTATIC (Box, Companion, LBox$Companion;)
|
GETSTATIC (Box, Companion, LBox$Companion;)
|
||||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||||
DUP
|
DUP
|
||||||
@@ -139,11 +135,12 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||||
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
||||||
POP
|
POP
|
||||||
LABEL (L16)
|
LABEL (L14)
|
||||||
LINENUMBER (36)
|
LINENUMBER (36)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L17)
|
LABEL (L15)
|
||||||
|
LINENUMBER (51)
|
||||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||||
DUP
|
DUP
|
||||||
GETSTATIC (Box, Companion, LBox$Companion;)
|
GETSTATIC (Box, Companion, LBox$Companion;)
|
||||||
@@ -153,21 +150,23 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||||
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
||||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||||
LABEL (L18)
|
LABEL (L16)
|
||||||
LINENUMBER (49)
|
|
||||||
NOP
|
|
||||||
LABEL (L19)
|
|
||||||
POP
|
POP
|
||||||
|
LABEL (L17)
|
||||||
|
LINENUMBER (38)
|
||||||
GETSTATIC (kotlinx/serialization/internal/IntSerializer, INSTANCE, Lkotlinx/serialization/internal/IntSerializer;)
|
GETSTATIC (kotlinx/serialization/internal/IntSerializer, INSTANCE, Lkotlinx/serialization/internal/IntSerializer;)
|
||||||
POP
|
POP
|
||||||
|
LABEL (L18)
|
||||||
|
LINENUMBER (40)
|
||||||
GETSTATIC (SerializableObject, INSTANCE, LSerializableObject;)
|
GETSTATIC (SerializableObject, INSTANCE, LSerializableObject;)
|
||||||
INVOKEVIRTUAL (SerializableObject, serializer, ()Lkotlinx/serialization/KSerializer;)
|
INVOKEVIRTUAL (SerializableObject, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||||
POP
|
POP
|
||||||
LABEL (L20)
|
LABEL (L19)
|
||||||
LINENUMBER (42)
|
LINENUMBER (42)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L21)
|
LABEL (L20)
|
||||||
|
LINENUMBER (52)
|
||||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||||
DUP
|
DUP
|
||||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||||
@@ -178,13 +177,16 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
INVOKESPECIAL (Box$$serializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
INVOKESPECIAL (Box$$serializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||||
LABEL (L22)
|
LABEL (L21)
|
||||||
LINENUMBER (50)
|
|
||||||
NOP
|
|
||||||
LABEL (L23)
|
|
||||||
POP
|
POP
|
||||||
LABEL (L24)
|
LABEL (L22)
|
||||||
LINENUMBER (43)
|
LINENUMBER (44)
|
||||||
|
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||||
|
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||||
|
INVOKESTATIC (kotlinx/serialization/builtins/BuiltinSerializersKt, getNullable, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
||||||
|
POP
|
||||||
|
LABEL (L23)
|
||||||
|
LINENUMBER (45)
|
||||||
RETURN
|
RETURN
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,55 +76,55 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
LDC (LSimple;)
|
LDC (LSimple;)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;)Lkotlin/reflect/KType;)
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;)Lkotlin/reflect/KType;)
|
||||||
LABEL (L2)
|
LABEL (L2)
|
||||||
LINENUMBER (51)
|
LINENUMBER (53)
|
||||||
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
ASTORE (1)
|
ASTORE (1)
|
||||||
LABEL (L3)
|
LABEL (L3)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (2)
|
ISTORE (2)
|
||||||
LABEL (L4)
|
LABEL (L4)
|
||||||
LINENUMBER (52)
|
LINENUMBER (54)
|
||||||
ALOAD (1)
|
ALOAD (1)
|
||||||
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
LABEL (L5)
|
LABEL (L5)
|
||||||
LINENUMBER (51)
|
LINENUMBER (53)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L6)
|
LABEL (L6)
|
||||||
LINENUMBER (29)
|
LINENUMBER (29)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L7)
|
LABEL (L7)
|
||||||
LINENUMBER (53)
|
LINENUMBER (55)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (1)
|
ISTORE (1)
|
||||||
LABEL (L8)
|
LABEL (L8)
|
||||||
LDC (LSimple;)
|
LDC (LSimple;)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;)Lkotlin/reflect/KType;)
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;)Lkotlin/reflect/KType;)
|
||||||
LABEL (L9)
|
LABEL (L9)
|
||||||
LINENUMBER (54)
|
LINENUMBER (56)
|
||||||
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
ASTORE (2)
|
ASTORE (2)
|
||||||
LABEL (L10)
|
LABEL (L10)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (3)
|
ISTORE (3)
|
||||||
LABEL (L11)
|
LABEL (L11)
|
||||||
LINENUMBER (55)
|
LINENUMBER (57)
|
||||||
ALOAD (2)
|
ALOAD (2)
|
||||||
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
LABEL (L12)
|
LABEL (L12)
|
||||||
LINENUMBER (54)
|
LINENUMBER (56)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L13)
|
LABEL (L13)
|
||||||
LINENUMBER (53)
|
LINENUMBER (55)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L14)
|
LABEL (L14)
|
||||||
LINENUMBER (30)
|
LINENUMBER (30)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L15)
|
LABEL (L15)
|
||||||
LINENUMBER (56)
|
LINENUMBER (58)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (1)
|
ISTORE (1)
|
||||||
LABEL (L16)
|
LABEL (L16)
|
||||||
@@ -135,29 +135,29 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
||||||
LABEL (L17)
|
LABEL (L17)
|
||||||
LINENUMBER (57)
|
LINENUMBER (59)
|
||||||
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
ASTORE (2)
|
ASTORE (2)
|
||||||
LABEL (L18)
|
LABEL (L18)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (3)
|
ISTORE (3)
|
||||||
LABEL (L19)
|
LABEL (L19)
|
||||||
LINENUMBER (58)
|
LINENUMBER (60)
|
||||||
ALOAD (2)
|
ALOAD (2)
|
||||||
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
LABEL (L20)
|
LABEL (L20)
|
||||||
LINENUMBER (57)
|
LINENUMBER (59)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L21)
|
LABEL (L21)
|
||||||
LINENUMBER (56)
|
LINENUMBER (58)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L22)
|
LABEL (L22)
|
||||||
LINENUMBER (31)
|
LINENUMBER (31)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L23)
|
LABEL (L23)
|
||||||
LINENUMBER (59)
|
LINENUMBER (61)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (1)
|
ISTORE (1)
|
||||||
LABEL (L24)
|
LABEL (L24)
|
||||||
@@ -168,29 +168,29 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
||||||
LABEL (L25)
|
LABEL (L25)
|
||||||
LINENUMBER (60)
|
LINENUMBER (62)
|
||||||
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
ASTORE (2)
|
ASTORE (2)
|
||||||
LABEL (L26)
|
LABEL (L26)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (3)
|
ISTORE (3)
|
||||||
LABEL (L27)
|
LABEL (L27)
|
||||||
LINENUMBER (61)
|
LINENUMBER (63)
|
||||||
ALOAD (2)
|
ALOAD (2)
|
||||||
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
LABEL (L28)
|
LABEL (L28)
|
||||||
LINENUMBER (60)
|
LINENUMBER (62)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L29)
|
LABEL (L29)
|
||||||
LINENUMBER (59)
|
LINENUMBER (61)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L30)
|
LABEL (L30)
|
||||||
LINENUMBER (32)
|
LINENUMBER (32)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L31)
|
LABEL (L31)
|
||||||
LINENUMBER (62)
|
LINENUMBER (64)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (1)
|
ISTORE (1)
|
||||||
LABEL (L32)
|
LABEL (L32)
|
||||||
@@ -201,22 +201,22 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
||||||
LABEL (L33)
|
LABEL (L33)
|
||||||
LINENUMBER (63)
|
LINENUMBER (65)
|
||||||
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
ASTORE (2)
|
ASTORE (2)
|
||||||
LABEL (L34)
|
LABEL (L34)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (3)
|
ISTORE (3)
|
||||||
LABEL (L35)
|
LABEL (L35)
|
||||||
LINENUMBER (64)
|
LINENUMBER (66)
|
||||||
ALOAD (2)
|
ALOAD (2)
|
||||||
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
LABEL (L36)
|
LABEL (L36)
|
||||||
LINENUMBER (63)
|
LINENUMBER (65)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L37)
|
LABEL (L37)
|
||||||
LINENUMBER (62)
|
LINENUMBER (64)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L38)
|
LABEL (L38)
|
||||||
LINENUMBER (34)
|
LINENUMBER (34)
|
||||||
@@ -234,26 +234,26 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
||||||
LABEL (L40)
|
LABEL (L40)
|
||||||
LINENUMBER (65)
|
LINENUMBER (67)
|
||||||
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
ASTORE (1)
|
ASTORE (1)
|
||||||
LABEL (L41)
|
LABEL (L41)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (2)
|
ISTORE (2)
|
||||||
LABEL (L42)
|
LABEL (L42)
|
||||||
LINENUMBER (66)
|
LINENUMBER (68)
|
||||||
ALOAD (1)
|
ALOAD (1)
|
||||||
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
LABEL (L43)
|
LABEL (L43)
|
||||||
LINENUMBER (65)
|
LINENUMBER (67)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L44)
|
LABEL (L44)
|
||||||
LINENUMBER (36)
|
LINENUMBER (36)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L45)
|
LABEL (L45)
|
||||||
LINENUMBER (67)
|
LINENUMBER (69)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (1)
|
ISTORE (1)
|
||||||
LABEL (L46)
|
LABEL (L46)
|
||||||
@@ -272,22 +272,22 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
||||||
LABEL (L47)
|
LABEL (L47)
|
||||||
LINENUMBER (68)
|
LINENUMBER (70)
|
||||||
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
ASTORE (2)
|
ASTORE (2)
|
||||||
LABEL (L48)
|
LABEL (L48)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (3)
|
ISTORE (3)
|
||||||
LABEL (L49)
|
LABEL (L49)
|
||||||
LINENUMBER (69)
|
LINENUMBER (71)
|
||||||
ALOAD (2)
|
ALOAD (2)
|
||||||
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
LABEL (L50)
|
LABEL (L50)
|
||||||
LINENUMBER (68)
|
LINENUMBER (70)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L51)
|
LABEL (L51)
|
||||||
LINENUMBER (67)
|
LINENUMBER (69)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L52)
|
LABEL (L52)
|
||||||
LINENUMBER (38)
|
LINENUMBER (38)
|
||||||
@@ -297,19 +297,19 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
GETSTATIC (java/lang/Integer, TYPE, Ljava/lang/Class;)
|
GETSTATIC (java/lang/Integer, TYPE, Ljava/lang/Class;)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;)Lkotlin/reflect/KType;)
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;)Lkotlin/reflect/KType;)
|
||||||
LABEL (L54)
|
LABEL (L54)
|
||||||
LINENUMBER (70)
|
LINENUMBER (72)
|
||||||
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
ASTORE (1)
|
ASTORE (1)
|
||||||
LABEL (L55)
|
LABEL (L55)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (2)
|
ISTORE (2)
|
||||||
LABEL (L56)
|
LABEL (L56)
|
||||||
LINENUMBER (71)
|
LINENUMBER (73)
|
||||||
ALOAD (1)
|
ALOAD (1)
|
||||||
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
LABEL (L57)
|
LABEL (L57)
|
||||||
LINENUMBER (70)
|
LINENUMBER (72)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L58)
|
LABEL (L58)
|
||||||
LINENUMBER (40)
|
LINENUMBER (40)
|
||||||
@@ -319,26 +319,26 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
LDC (LSerializableObject;)
|
LDC (LSerializableObject;)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;)Lkotlin/reflect/KType;)
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;)Lkotlin/reflect/KType;)
|
||||||
LABEL (L60)
|
LABEL (L60)
|
||||||
LINENUMBER (72)
|
LINENUMBER (74)
|
||||||
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
ASTORE (1)
|
ASTORE (1)
|
||||||
LABEL (L61)
|
LABEL (L61)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (2)
|
ISTORE (2)
|
||||||
LABEL (L62)
|
LABEL (L62)
|
||||||
LINENUMBER (73)
|
LINENUMBER (75)
|
||||||
ALOAD (1)
|
ALOAD (1)
|
||||||
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
LABEL (L63)
|
LABEL (L63)
|
||||||
LINENUMBER (72)
|
LINENUMBER (74)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L64)
|
LABEL (L64)
|
||||||
LINENUMBER (42)
|
LINENUMBER (42)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (0)
|
ISTORE (0)
|
||||||
LABEL (L65)
|
LABEL (L65)
|
||||||
LINENUMBER (74)
|
LINENUMBER (76)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (1)
|
ISTORE (1)
|
||||||
LABEL (L66)
|
LABEL (L66)
|
||||||
@@ -357,25 +357,47 @@ public final class IntrinsicsKt : java/lang/Object {
|
|||||||
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
INVOKEVIRTUAL (kotlin/reflect/KTypeProjection$Companion, invariant, (Lkotlin/reflect/KType;)Lkotlin/reflect/KTypeProjection;)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, typeOf, (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;)
|
||||||
LABEL (L67)
|
LABEL (L67)
|
||||||
LINENUMBER (75)
|
LINENUMBER (77)
|
||||||
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
ASTORE (2)
|
ASTORE (2)
|
||||||
LABEL (L68)
|
LABEL (L68)
|
||||||
ICONST_0
|
ICONST_0
|
||||||
ISTORE (3)
|
ISTORE (3)
|
||||||
LABEL (L69)
|
LABEL (L69)
|
||||||
LINENUMBER (76)
|
LINENUMBER (78)
|
||||||
ALOAD (2)
|
ALOAD (2)
|
||||||
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
LABEL (L70)
|
LABEL (L70)
|
||||||
LINENUMBER (75)
|
LINENUMBER (77)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L71)
|
LABEL (L71)
|
||||||
LINENUMBER (74)
|
LINENUMBER (76)
|
||||||
NOP
|
NOP
|
||||||
LABEL (L72)
|
LABEL (L72)
|
||||||
LINENUMBER (43)
|
LINENUMBER (44)
|
||||||
|
ICONST_0
|
||||||
|
ISTORE (0)
|
||||||
|
LABEL (L73)
|
||||||
|
LDC (LSimple;)
|
||||||
|
INVOKESTATIC (kotlin/jvm/internal/Reflection, nullableTypeOf, (Ljava/lang/Class;)Lkotlin/reflect/KType;)
|
||||||
|
LABEL (L74)
|
||||||
|
LINENUMBER (79)
|
||||||
|
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
|
||||||
|
ASTORE (1)
|
||||||
|
LABEL (L75)
|
||||||
|
ICONST_0
|
||||||
|
ISTORE (2)
|
||||||
|
LABEL (L76)
|
||||||
|
LINENUMBER (80)
|
||||||
|
ALOAD (1)
|
||||||
|
LDC (null cannot be cast to non-null type kotlinx.serialization.KSerializer<T of kotlinx.serialization.internal.Platform_commonKt.cast>)
|
||||||
|
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||||
|
LABEL (L77)
|
||||||
|
LINENUMBER (79)
|
||||||
|
NOP
|
||||||
|
LABEL (L78)
|
||||||
|
LINENUMBER (45)
|
||||||
RETURN
|
RETURN
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,4 +40,6 @@ fun test() {
|
|||||||
serializer<SerializableObject>()
|
serializer<SerializableObject>()
|
||||||
|
|
||||||
listSer<List<Box<Int>>>()
|
listSer<List<Box<Int>>>()
|
||||||
|
|
||||||
|
serializer<Simple?>()
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user