Also support intrinsification for SerializersModule.serializer<T>()

method that fallbacks to module.getContextual().
This commit is contained in:
Leonid Startsev
2022-08-25 17:38:43 +02:00
committed by Space
parent a59f5f407b
commit aac9a06474
14 changed files with 844 additions and 117 deletions
@@ -0,0 +1,268 @@
public final class Box$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
private final kotlinx.serialization.internal.PluginGeneratedSerialDescriptor descriptor
private final kotlinx.serialization.KSerializer typeSerial0
private void <init>()
public void <init>(kotlinx.serialization.KSerializer typeSerial0)
public kotlinx.serialization.KSerializer[] childSerializers()
public Box deserialize(kotlinx.serialization.encoding.Decoder decoder)
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder decoder)
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor()
private final kotlinx.serialization.KSerializer getTypeSerial0()
public void serialize(kotlinx.serialization.encoding.Encoder encoder, Box value)
public void serialize(kotlinx.serialization.encoding.Encoder encoder, java.lang.Object value)
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
}
public final class Box$Companion : java/lang/Object {
private void <init>()
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker)
private final kotlinx.serialization.descriptors.SerialDescriptor get$cachedDescriptor()
public final kotlinx.serialization.KSerializer serializer(kotlinx.serialization.KSerializer typeSerial0)
}
public final class Box : java/lang/Object {
private final static kotlinx.serialization.descriptors.SerialDescriptor $cachedDescriptor
public final static Box$Companion Companion
private final java.lang.Object boxed
static void <clinit>()
public void <init>(java.lang.Object boxed)
public void <init>(int seen1, java.lang.Object boxed, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker)
public final static kotlinx.serialization.descriptors.SerialDescriptor access$get$cachedDescriptor$cp()
public final java.lang.Object component1()
public final Box copy(java.lang.Object boxed)
public static Box copy$default(Box p0, java.lang.Object p1, int p2, java.lang.Object p3)
public boolean equals(java.lang.Object other)
public final java.lang.Object getBoxed()
public int hashCode()
public java.lang.String toString()
public final static void write$Self(Box self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc, kotlinx.serialization.KSerializer typeSerial0)
}
public final class IntrinsicsKt : java/lang/Object {
public final static kotlinx.serialization.KSerializer getBoxSer()
public final static kotlinx.serialization.KSerializer getSer()
public final static kotlinx.serialization.KSerializer listSer()
public final static void test() {
GETSTATIC (Simple, Companion, LSimple$Companion;)
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
POP
LABEL (L0)
LINENUMBER (29)
ICONST_0
ISTORE (0)
LABEL (L1)
GETSTATIC (Simple, Companion, LSimple$Companion;)
INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
LABEL (L2)
LINENUMBER (45)
NOP
LABEL (L3)
POP
LABEL (L4)
LINENUMBER (30)
ICONST_0
ISTORE (0)
LABEL (L5)
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)
LINENUMBER (31)
ICONST_0
ISTORE (0)
LABEL (L9)
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)
POP
LABEL (L12)
LINENUMBER (32)
ICONST_0
ISTORE (0)
LABEL (L13)
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)
POP
GETSTATIC (Box, Companion, LBox$Companion;)
NEW (kotlinx/serialization/internal/ArrayListSerializer)
DUP
GETSTATIC (Simple$$serializer, INSTANCE, LSimple$$serializer;)
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
POP
LABEL (L16)
LINENUMBER (36)
ICONST_0
ISTORE (0)
LABEL (L17)
NEW (kotlinx/serialization/internal/ArrayListSerializer)
DUP
GETSTATIC (Box, Companion, LBox$Companion;)
NEW (kotlinx/serialization/internal/ArrayListSerializer)
DUP
GETSTATIC (Simple$$serializer, INSTANCE, LSimple$$serializer;)
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)
POP
GETSTATIC (kotlinx/serialization/internal/IntSerializer, INSTANCE, Lkotlinx/serialization/internal/IntSerializer;)
POP
GETSTATIC (SerializableObject, INSTANCE, LSerializableObject;)
INVOKEVIRTUAL (SerializableObject, serializer, ()Lkotlinx/serialization/KSerializer;)
POP
LABEL (L20)
LINENUMBER (42)
ICONST_0
ISTORE (0)
LABEL (L21)
NEW (kotlinx/serialization/internal/ArrayListSerializer)
DUP
NEW (kotlinx/serialization/internal/ArrayListSerializer)
DUP
NEW (Box$$serializer)
DUP
GETSTATIC (kotlinx/serialization/internal/IntSerializer, INSTANCE, Lkotlinx/serialization/internal/IntSerializer;)
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)
POP
LABEL (L24)
LINENUMBER (43)
RETURN
}
}
final class SerializableObject$$cachedSerializer$delegate$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function0 {
public final static SerializableObject$$cachedSerializer$delegate$1 INSTANCE
static void <clinit>()
void <init>()
public final kotlinx.serialization.KSerializer invoke()
public java.lang.Object invoke()
}
public final class SerializableObject : java/lang/Object {
private final static kotlin.Lazy $cachedSerializer$delegate
public final static SerializableObject INSTANCE
static void <clinit>()
private void <init>()
private final kotlin.Lazy get$cachedSerializer$delegate()
public final kotlinx.serialization.KSerializer serializer()
}
public final class Simple$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
public final static Simple$$serializer INSTANCE
private final static kotlinx.serialization.internal.PluginGeneratedSerialDescriptor descriptor
static void <clinit>()
private void <init>()
public kotlinx.serialization.KSerializer[] childSerializers()
public Simple deserialize(kotlinx.serialization.encoding.Decoder decoder)
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder decoder)
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor()
public void serialize(kotlinx.serialization.encoding.Encoder encoder, Simple value)
public void serialize(kotlinx.serialization.encoding.Encoder encoder, java.lang.Object value)
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
}
public final class Simple$Companion : java/lang/Object {
private void <init>()
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker)
public final kotlinx.serialization.KSerializer serializer()
}
public final class Simple : java/lang/Object {
public final static Simple$Companion Companion
private final java.lang.String firstName
private final java.lang.String lastName
static void <clinit>()
public void <init>(java.lang.String firstName, java.lang.String lastName)
public void <init>(int seen1, java.lang.String firstName, java.lang.String lastName, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker)
public final java.lang.String getFirstName()
public final java.lang.String getLastName()
public final static void write$Self(Simple self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc)
}