KT-55005 Do not generate CHECKCAST before AASTORE

This commit is contained in:
Pavel Mikhailovskii
2022-12-21 15:06:07 +00:00
committed by Space Team
parent d26b96afe1
commit 06d3e1d8bd
9 changed files with 70 additions and 19 deletions
@@ -258,7 +258,6 @@ public final class ListOfUsers : java/lang/Object {
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (0)
PUTSTATIC (ListOfUsers, $childSerializers, [Lkotlinx/serialization/KSerializer;)
@@ -381,7 +380,6 @@ public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serializ
ALOAD (1)
ICONST_0
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ARETURN
@@ -760,12 +758,10 @@ public final class User$$serializer : java/lang/Object, kotlinx/serialization/in
ALOAD (1)
ICONST_0
GETSTATIC (kotlinx/serialization/internal/StringSerializer, INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ICONST_1
GETSTATIC (kotlinx/serialization/internal/StringSerializer, INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ARETURN
@@ -342,7 +342,6 @@ public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serializ
DUP
ICONST_0
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ARETURN
LABEL (L1)
@@ -696,12 +695,10 @@ public final class User$$serializer : java/lang/Object, kotlinx/serialization/in
DUP
ICONST_0
GETSTATIC (kotlinx/serialization/internal/StringSerializer, INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
DUP
ICONST_1
GETSTATIC (kotlinx/serialization/internal/StringSerializer, INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ARETURN
LABEL (L1)
@@ -346,12 +346,10 @@ final class Result$Companion$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/function
ICONST_0
ANEWARRAY (java/lang/annotation/Annotation)
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/annotation/Annotation;)V)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ICONST_0
@@ -536,7 +534,6 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
ALOAD (1)
ICONST_0
GETSTATIC (kotlinx/serialization/internal/StringSerializer, INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ARETURN
@@ -863,12 +860,10 @@ public final class X$Companion : java/lang/Object {
ICONST_0
ANEWARRAY (java/lang/annotation/Annotation)
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/annotation/Annotation;)V)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ICONST_0
@@ -74,7 +74,6 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
DUP
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;)V)
AASTORE
@@ -133,7 +132,6 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
DUP
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;)V)
ALOAD (5)
@@ -187,7 +185,6 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
DUP
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;)V)
ALOAD (5)
@@ -365,7 +362,6 @@ public final class Container : java/lang/Object {
DUP
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;)V)
ALOAD (0)
@@ -428,7 +424,6 @@ final class Result$Companion$serializer$1 : kotlin/jvm/internal/Lambda, kotlin/j
DUP
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;)V)
ARETURN
@@ -615,7 +610,6 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
DUP
ICONST_0
GETSTATIC (kotlinx/serialization/internal/StringSerializer, INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ARETURN
LABEL (L1)
@@ -931,7 +925,6 @@ public final class X$Companion : java/lang/Object {
DUP
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;)V)
ARETURN