Marked write$Self and $serializer from serialization as synthetic

This commit is contained in:
Sergey.Shanshin
2022-10-11 17:05:03 +00:00
committed by Space Team
parent 34c32e91e8
commit f4845b8dd9
4 changed files with 18 additions and 75 deletions
@@ -369,6 +369,7 @@ class SerializableIrGenerator(
val serializerDescriptor = irClass.classSerializer(compilerContext)?.owner ?: return val serializerDescriptor = irClass.classSerializer(compilerContext)?.owner ?: return
if (irClass.shouldHaveSpecificSyntheticMethods { serializerDescriptor.findPluginGeneratedMethod(SAVE) }) { if (irClass.shouldHaveSpecificSyntheticMethods { serializerDescriptor.findPluginGeneratedMethod(SAVE) }) {
val func = irClass.findWriteSelfMethod() ?: return val func = irClass.findWriteSelfMethod() ?: return
func.origin = SERIALIZATION_PLUGIN_ORIGIN
generateWriteSelfMethod(func) generateWriteSelfMethod(func)
} }
} }
@@ -623,6 +623,7 @@ open class SerializerIrGenerator(
else -> SerializerIrGenerator(irClass, context, metadataPlugin) else -> SerializerIrGenerator(irClass, context, metadataPlugin)
} }
generator.generate() generator.generate()
irClass.origin = SERIALIZATION_PLUGIN_ORIGIN
irClass.addDefaultConstructorIfAbsent(context) irClass.addDefaultConstructorIfAbsent(context)
irClass.patchDeclarationParents(irClass.parent) irClass.patchDeclarationParents(irClass.parent)
} }
@@ -295,16 +295,6 @@ public final class ListOfUsers : java/lang/Object {
public final static void write$Self(ListOfUsers self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) { public final static void write$Self(ListOfUsers self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
LABEL (L0) LABEL (L0)
ALOAD (0)
LDC (self)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
LDC (output)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (2)
LDC (serialDesc)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (12) LINENUMBER (12)
ALOAD (1) ALOAD (1)
ALOAD (2) ALOAD (2)
@@ -319,7 +309,7 @@ public final class ListOfUsers : java/lang/Object {
GETFIELD (ListOfUsers, list, Ljava/util/List;) GETFIELD (ListOfUsers, list, Ljava/util/List;)
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V) INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V)
RETURN RETURN
LABEL (L2) LABEL (L1)
} }
} }
@@ -656,28 +646,18 @@ public final class OptionalUser : java/lang/Object {
public final static void write$Self(OptionalUser self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) { public final static void write$Self(OptionalUser self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
LABEL (L0) LABEL (L0)
ALOAD (0)
LDC (self)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
LDC (output)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (2)
LDC (serialDesc)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (9) LINENUMBER (9)
ALOAD (1) ALOAD (1)
ALOAD (2) ALOAD (2)
ICONST_0 ICONST_0
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, shouldEncodeElementDefault, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Z) INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, shouldEncodeElementDefault, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Z)
IFEQ (L2) IFEQ (L1)
ICONST_1 ICONST_1
GOTO (L3) GOTO (L2)
LABEL (L2) LABEL (L1)
ALOAD (0) ALOAD (0)
GETFIELD (OptionalUser, user, LUser;) GETFIELD (OptionalUser, user, LUser;)
LABEL (L4) LABEL (L3)
LINENUMBER (10) LINENUMBER (10)
NEW (User) NEW (User)
DUP DUP
@@ -685,14 +665,14 @@ public final class OptionalUser : java/lang/Object {
LDC () LDC ()
INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;)V) INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;)V)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, areEqual, (Ljava/lang/Object;Ljava/lang/Object;)Z) INVOKESTATIC (kotlin/jvm/internal/Intrinsics, areEqual, (Ljava/lang/Object;Ljava/lang/Object;)Z)
IFNE (L5) IFNE (L4)
ICONST_1 ICONST_1
GOTO (L3) GOTO (L2)
LABEL (L5) LABEL (L4)
ICONST_0 ICONST_0
LABEL (L3) LABEL (L2)
IFEQ (L6) IFEQ (L5)
LABEL (L7) LABEL (L6)
LINENUMBER (9) LINENUMBER (9)
ALOAD (1) ALOAD (1)
ALOAD (2) ALOAD (2)
@@ -702,9 +682,9 @@ public final class OptionalUser : java/lang/Object {
ALOAD (0) ALOAD (0)
GETFIELD (OptionalUser, user, LUser;) GETFIELD (OptionalUser, user, LUser;)
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V) INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V)
LABEL (L6) LABEL (L5)
RETURN RETURN
LABEL (L8) LABEL (L7)
} }
} }
@@ -1032,16 +1012,6 @@ public final class User : java/lang/Object {
public final static void write$Self(User self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) { public final static void write$Self(User self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
LABEL (L0) LABEL (L0)
ALOAD (0)
LDC (self)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
LDC (output)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (2)
LDC (serialDesc)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (6) LINENUMBER (6)
ALOAD (1) ALOAD (1)
ALOAD (2) ALOAD (2)
@@ -1056,6 +1026,6 @@ public final class User : java/lang/Object {
GETFIELD (User, lastName, Ljava/lang/String;) GETFIELD (User, lastName, Ljava/lang/String;)
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILjava/lang/String;)V) INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILjava/lang/String;)V)
RETURN RETURN
LABEL (L2) LABEL (L1)
} }
} }
@@ -249,16 +249,6 @@ public final class Container : java/lang/Object {
public final static void write$Self(Container self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) { public final static void write$Self(Container self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
LABEL (L0) LABEL (L0)
ALOAD (0)
LDC (self)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
LDC (output)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (2)
LDC (serialDesc)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (18) LINENUMBER (18)
ALOAD (1) ALOAD (1)
ALOAD (2) ALOAD (2)
@@ -270,7 +260,7 @@ public final class Container : java/lang/Object {
GETFIELD (Container, r, LResult;) GETFIELD (Container, r, LResult;)
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V) INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V)
RETURN RETURN
LABEL (L2) LABEL (L1)
} }
} }
@@ -716,16 +706,6 @@ public final class Result$OK : Result {
public final static void write$Self(Result$OK self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) { public final static void write$Self(Result$OK self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
LABEL (L0) LABEL (L0)
ALOAD (0)
LDC (self)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
LDC (output)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (2)
LDC (serialDesc)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (14) LINENUMBER (14)
ALOAD (0) ALOAD (0)
CHECKCAST (Result) CHECKCAST (Result)
@@ -739,7 +719,7 @@ public final class Result$OK : Result {
GETFIELD (Result$OK, s, Ljava/lang/String;) GETFIELD (Result$OK, s, Ljava/lang/String;)
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILjava/lang/String;)V) INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILjava/lang/String;)V)
RETURN RETURN
LABEL (L2) LABEL (L1)
} }
} }
@@ -798,15 +778,6 @@ public abstract class Result : java/lang/Object, X {
public final static void write$Self(Result self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) { public final static void write$Self(Result self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
LABEL (L0) LABEL (L0)
ALOAD (0)
LDC (self)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (1)
LDC (output)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
ALOAD (2)
LDC (serialDesc)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
RETURN RETURN
LABEL (L1) LABEL (L1)
} }