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:
@@ -74,19 +74,19 @@ public final class IntrinsicsKt : java/lang/Object {
|
||||
public final static kotlinx.serialization.KSerializer listSer()
|
||||
|
||||
public final static void test() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (28)
|
||||
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||
POP
|
||||
LABEL (L0)
|
||||
LABEL (L1)
|
||||
LINENUMBER (29)
|
||||
ICONST_0
|
||||
ISTORE (0)
|
||||
LABEL (L1)
|
||||
LABEL (L2)
|
||||
LINENUMBER (47)
|
||||
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||
LABEL (L2)
|
||||
LINENUMBER (45)
|
||||
NOP
|
||||
LABEL (L3)
|
||||
POP
|
||||
LABEL (L4)
|
||||
@@ -94,44 +94,40 @@ public final class IntrinsicsKt : java/lang/Object {
|
||||
ICONST_0
|
||||
ISTORE (0)
|
||||
LABEL (L5)
|
||||
LINENUMBER (48)
|
||||
GETSTATIC (Box, Companion, LBox$Companion;)
|
||||
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
||||
LABEL (L6)
|
||||
LINENUMBER (46)
|
||||
NOP
|
||||
LABEL (L7)
|
||||
POP
|
||||
LABEL (L8)
|
||||
LABEL (L7)
|
||||
LINENUMBER (31)
|
||||
ICONST_0
|
||||
ISTORE (0)
|
||||
LABEL (L9)
|
||||
LABEL (L8)
|
||||
LINENUMBER (49)
|
||||
GETSTATIC (Box, Companion, LBox$Companion;)
|
||||
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
||||
LABEL (L10)
|
||||
LINENUMBER (47)
|
||||
NOP
|
||||
LABEL (L11)
|
||||
LABEL (L9)
|
||||
POP
|
||||
LABEL (L12)
|
||||
LABEL (L10)
|
||||
LINENUMBER (32)
|
||||
ICONST_0
|
||||
ISTORE (0)
|
||||
LABEL (L13)
|
||||
LABEL (L11)
|
||||
LINENUMBER (50)
|
||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||
DUP
|
||||
GETSTATIC (Simple, Companion, LSimple$Companion;)
|
||||
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||
LABEL (L14)
|
||||
LINENUMBER (48)
|
||||
NOP
|
||||
LABEL (L15)
|
||||
LABEL (L12)
|
||||
POP
|
||||
LABEL (L13)
|
||||
LINENUMBER (34)
|
||||
GETSTATIC (Box, Companion, LBox$Companion;)
|
||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||
DUP
|
||||
@@ -139,11 +135,12 @@ public final class IntrinsicsKt : java/lang/Object {
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
||||
POP
|
||||
LABEL (L16)
|
||||
LABEL (L14)
|
||||
LINENUMBER (36)
|
||||
ICONST_0
|
||||
ISTORE (0)
|
||||
LABEL (L17)
|
||||
LABEL (L15)
|
||||
LINENUMBER (51)
|
||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||
DUP
|
||||
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)
|
||||
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||
LABEL (L18)
|
||||
LINENUMBER (49)
|
||||
NOP
|
||||
LABEL (L19)
|
||||
LABEL (L16)
|
||||
POP
|
||||
LABEL (L17)
|
||||
LINENUMBER (38)
|
||||
GETSTATIC (kotlinx/serialization/internal/IntSerializer, INSTANCE, Lkotlinx/serialization/internal/IntSerializer;)
|
||||
POP
|
||||
LABEL (L18)
|
||||
LINENUMBER (40)
|
||||
GETSTATIC (SerializableObject, INSTANCE, LSerializableObject;)
|
||||
INVOKEVIRTUAL (SerializableObject, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||
POP
|
||||
LABEL (L20)
|
||||
LABEL (L19)
|
||||
LINENUMBER (42)
|
||||
ICONST_0
|
||||
ISTORE (0)
|
||||
LABEL (L21)
|
||||
LABEL (L20)
|
||||
LINENUMBER (52)
|
||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||
DUP
|
||||
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 (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||
LABEL (L22)
|
||||
LINENUMBER (50)
|
||||
NOP
|
||||
LABEL (L23)
|
||||
LABEL (L21)
|
||||
POP
|
||||
LABEL (L24)
|
||||
LINENUMBER (43)
|
||||
LABEL (L22)
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user