Fixes for IR serialization plugin
- Do not insert typeParameters into IrConstructor; - Set correct property symbol to IrField; - Use upper bound as a class descriptor for type parameters. This will allow to get upper bound's KClass in polymorphic serialization. Fixes https://github.com/Kotlin/kotlinx.serialization/issues/490; - Lazily add all serializer functions. Fixes https://github.com/Kotlin/kotlinx.serialization/issues/502; - Don't generate constructor invocation for abstract(sealed) classes deserializer. Such code is incorrect anyway (you can't create an instance of abstract class) and causes problems in devirtualization when exporting Native libraries.
This commit is contained in:
+3
-9
@@ -188,10 +188,8 @@ public final class ListOfUsers$$serializer : java/lang/Object, kotlinx/serializa
|
||||
ALOAD (4)
|
||||
ALOAD (3)
|
||||
INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
|
||||
LABEL (L2)
|
||||
LINENUMBER (13)
|
||||
RETURN
|
||||
LABEL (L3)
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void serialize(kotlinx.serialization.Encoder encoder, java.lang.Object obj) {
|
||||
@@ -493,10 +491,8 @@ public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serializ
|
||||
ALOAD (4)
|
||||
ALOAD (3)
|
||||
INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
|
||||
LABEL (L7)
|
||||
LINENUMBER (10)
|
||||
RETURN
|
||||
LABEL (L8)
|
||||
LABEL (L7)
|
||||
}
|
||||
|
||||
public void serialize(kotlinx.serialization.Encoder encoder, java.lang.Object obj) {
|
||||
@@ -840,10 +836,8 @@ public final class User$$serializer : java/lang/Object, kotlinx/serialization/in
|
||||
ALOAD (4)
|
||||
ALOAD (3)
|
||||
INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
|
||||
LABEL (L2)
|
||||
LINENUMBER (7)
|
||||
RETURN
|
||||
LABEL (L3)
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void serialize(kotlinx.serialization.Encoder encoder, java.lang.Object obj) {
|
||||
|
||||
Reference in New Issue
Block a user