fixup! Fix tests and review notes

This commit is contained in:
Leonid Startsev
2021-06-01 16:14:40 +03:00
committed by Space
parent 6a5cf00d7a
commit b43e5a5e7d
3 changed files with 61 additions and 58 deletions
@@ -938,10 +938,8 @@ interface IrBuilderExtension {
var args: List<IrExpression>
var typeArgs: List<IrType?>
val thisIrType = kType.toIrType()
val hasNewCtxSerCtor =
serializerClassOriginal.classId == contextSerializerId && compilerContext.referenceConstructors(serializerClass.fqNameSafe)
.any { it.owner.valueParameters.size == 3 }
var needToCopyAnnotations = false
when (serializerClassOriginal.classId) {
polymorphicSerializerId -> {
needToCopyAnnotations = true
@@ -952,6 +950,10 @@ interface IrBuilderExtension {
args = listOf(classReference(kType))
typeArgs = listOf(thisIrType)
val hasNewCtxSerCtor =
serializerClassOriginal.classId == contextSerializerId && compilerContext.referenceConstructors(serializerClass.fqNameSafe)
.any { it.owner.valueParameters.size == 3 }
if (hasNewCtxSerCtor) {
// new signature of context serializer
args = args + mutableListOf<IrExpression>().apply {
@@ -1115,7 +1117,8 @@ interface IrBuilderExtension {
private fun IrConstructor.lastArgumentIsAnnotationArray(): Boolean {
val lastArgType = valueParameters.lastOrNull()?.type
return (lastArgType != null && (lastArgType as? IrSimpleType)?.arguments?.firstOrNull()?.typeOrNull?.classFqName?.toString() == "kotlin.Annotation")
if (lastArgType == null || !lastArgType.isArray()) return false
return ((lastArgType as? IrSimpleType)?.arguments?.firstOrNull()?.typeOrNull?.classFqName?.toString() == "kotlin.Annotation")
}
private fun IrBuilderWithScope.wrapperClassReference(classType: KotlinType): IrClassReference {
@@ -9,7 +9,7 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
INVOKESPECIAL (Container$$serializer, <init>, ()V)
PUTSTATIC (INSTANCE, LContainer$$serializer;)
LABEL (L0)
LINENUMBER (12)
LINENUMBER (13)
NEW
DUP
LDC (Container)
@@ -26,13 +26,13 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
CHECKCAST
PUTSTATIC (descriptor, Lkotlinx/serialization/descriptors/SerialDescriptor;)
LABEL (L1)
LINENUMBER (13)
LINENUMBER (14)
RETURN
}
private void <init>() {
LABEL (L0)
LINENUMBER (12)
LINENUMBER (13)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -41,7 +41,7 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
public kotlinx.serialization.KSerializer[] childSerializers() {
LABEL (L0)
LINENUMBER (12)
LINENUMBER (13)
ICONST_1
ANEWARRAY
ASTORE (1)
@@ -61,7 +61,7 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
LDC (decoder)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (12)
LINENUMBER (13)
ALOAD (0)
INVOKEVIRTUAL (Container$$serializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
ASTORE (2)
@@ -145,7 +145,7 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder decoder) {
LABEL (L0)
LINENUMBER (12)
LINENUMBER (13)
ALOAD (0)
ALOAD (1)
INVOKEVIRTUAL (Container$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LContainer;)
@@ -165,7 +165,7 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
public final class Container$Companion : java/lang/Object {
private void <init>() {
LABEL (L0)
LINENUMBER (12)
LINENUMBER (13)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -182,7 +182,7 @@ public final class Container$Companion : java/lang/Object {
public final kotlinx.serialization.KSerializer serializer() {
LABEL (L0)
LINENUMBER (12)
LINENUMBER (13)
GETSTATIC (INSTANCE, LContainer$$serializer;)
CHECKCAST
ARETURN
@@ -210,11 +210,11 @@ public final class Container : java/lang/Object {
LDC (r)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (12)
LINENUMBER (13)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
LABEL (L2)
LINENUMBER (13)
LINENUMBER (14)
ALOAD (0)
ALOAD (1)
PUTFIELD (r, LResult;)
@@ -224,7 +224,7 @@ public final class Container : java/lang/Object {
public void <init>(int seen1, Result r, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
LABEL (L0)
LINENUMBER (12)
LINENUMBER (13)
ICONST_1
ICONST_1
ILOAD (1)
@@ -259,7 +259,7 @@ public final class Container : java/lang/Object {
LDC (serialDesc)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (12)
LINENUMBER (13)
ALOAD (1)
ALOAD (2)
ICONST_0
@@ -296,7 +296,7 @@ final class Result$Companion$$cachedSerializer$delegate$2 : kotlin/jvm/internal/
public final kotlinx.serialization.KSerializer invoke() {
LABEL (L0)
LINENUMBER (6)
LINENUMBER (7)
NEW
DUP
LDC (Result)
@@ -342,7 +342,7 @@ final class Result$Companion$$cachedSerializer$delegate$2 : kotlin/jvm/internal/
public java.lang.Object invoke() {
LABEL (L0)
LINENUMBER (6)
LINENUMBER (7)
ALOAD (0)
INVOKEVIRTUAL (Result$Companion$$cachedSerializer$delegate$2, invoke, ()Lkotlinx/serialization/KSerializer;)
ARETURN
@@ -353,7 +353,7 @@ final class Result$Companion$$cachedSerializer$delegate$2 : kotlin/jvm/internal/
public final class Result$Companion : java/lang/Object {
private void <init>() {
LABEL (L0)
LINENUMBER (6)
LINENUMBER (7)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -370,7 +370,7 @@ public final class Result$Companion : java/lang/Object {
public final kotlinx.serialization.KSerializer serializer() {
LABEL (L0)
LINENUMBER (6)
LINENUMBER (7)
INVOKESTATIC (Result, access$get$cachedSerializer$delegate$cp, ()Lkotlin/Lazy;)
INVOKEINTERFACE (kotlin/Lazy, getValue, ()Ljava/lang/Object;)
CHECKCAST
@@ -401,7 +401,7 @@ final class Result$Err$$cachedSerializer$delegate$2 : kotlin/jvm/internal/Lambda
public final kotlinx.serialization.KSerializer invoke() {
LABEL (L0)
LINENUMBER (9)
LINENUMBER (10)
NEW
DUP
LDC (Result.Err)
@@ -414,7 +414,7 @@ final class Result$Err$$cachedSerializer$delegate$2 : kotlin/jvm/internal/Lambda
public java.lang.Object invoke() {
LABEL (L0)
LINENUMBER (9)
LINENUMBER (10)
ALOAD (0)
INVOKEVIRTUAL (Result$Err$$cachedSerializer$delegate$2, invoke, ()Lkotlinx/serialization/KSerializer;)
ARETURN
@@ -433,7 +433,7 @@ public final class Result$Err : Result {
INVOKESPECIAL (Result$Err, <init>, ()V)
PUTSTATIC (INSTANCE, LResult$Err;)
LABEL (L0)
LINENUMBER (9)
LINENUMBER (10)
GETSTATIC (PUBLICATION, Lkotlin/LazyThreadSafetyMode;)
GETSTATIC (INSTANCE, LResult$Err$$cachedSerializer$delegate$2;)
CHECKCAST
@@ -444,7 +444,7 @@ public final class Result$Err : Result {
private void <init>() {
LABEL (L0)
LINENUMBER (9)
LINENUMBER (10)
ALOAD (0)
ACONST_NULL
INVOKESPECIAL (Result, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
@@ -454,7 +454,7 @@ public final class Result$Err : Result {
public final kotlinx.serialization.KSerializer serializer() {
LABEL (L0)
LINENUMBER (9)
LINENUMBER (10)
GETSTATIC ($cachedSerializer$delegate, Lkotlin/Lazy;)
INVOKEINTERFACE (kotlin/Lazy, getValue, ()Ljava/lang/Object;)
CHECKCAST
@@ -474,7 +474,7 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
INVOKESPECIAL (Result$OK$$serializer, <init>, ()V)
PUTSTATIC (INSTANCE, LResult$OK$$serializer;)
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
NEW
DUP
LDC (Result.OK)
@@ -495,7 +495,7 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
private void <init>() {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -504,7 +504,7 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
public kotlinx.serialization.KSerializer[] childSerializers() {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
ICONST_1
ANEWARRAY
ASTORE (1)
@@ -524,7 +524,7 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
LDC (decoder)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
INVOKEVIRTUAL (Result$OK$$serializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
ASTORE (2)
@@ -599,7 +599,7 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder decoder) {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
ALOAD (1)
INVOKEVIRTUAL (Result$OK$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LResult$OK;)
@@ -619,7 +619,7 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
public final class Result$OK$Companion : java/lang/Object {
private void <init>() {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -636,7 +636,7 @@ public final class Result$OK$Companion : java/lang/Object {
public final kotlinx.serialization.KSerializer serializer() {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
GETSTATIC (INSTANCE, LResult$OK$$serializer;)
CHECKCAST
ARETURN
@@ -664,7 +664,7 @@ public final class Result$OK : Result {
LDC (s)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
ACONST_NULL
INVOKESPECIAL (Result, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
@@ -677,7 +677,7 @@ public final class Result$OK : Result {
public void <init>(int seen1, java.lang.String s, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
ICONST_1
ICONST_1
ILOAD (1)
@@ -714,7 +714,7 @@ public final class Result$OK : Result {
LDC (serialDesc)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
CHECKCAST
ALOAD (1)
@@ -743,7 +743,7 @@ public abstract class Result : java/lang/Object {
INVOKESPECIAL (Result$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
PUTSTATIC (Companion, LResult$Companion;)
LABEL (L0)
LINENUMBER (6)
LINENUMBER (7)
GETSTATIC (PUBLICATION, Lkotlin/LazyThreadSafetyMode;)
GETSTATIC (INSTANCE, LResult$Companion$$cachedSerializer$delegate$2;)
CHECKCAST
@@ -754,18 +754,18 @@ public abstract class Result : java/lang/Object {
private void <init>() {
LABEL (L0)
LINENUMBER (6)
LINENUMBER (7)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
LABEL (L1)
LINENUMBER (7)
LINENUMBER (8)
RETURN
LABEL (L2)
}
public void <init>(int seen1, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
LABEL (L0)
LINENUMBER (6)
LINENUMBER (7)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -5,7 +5,7 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
static void <clinit>() {
LABEL (L0)
LINENUMBER (13)
LINENUMBER (14)
NEW
DUP
INVOKESPECIAL (Container$$serializer, <init>, ()V)
@@ -31,7 +31,7 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
private void <init>() {
LABEL (L0)
LINENUMBER (13)
LINENUMBER (14)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -219,7 +219,7 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder p0) {
LABEL (L0)
LINENUMBER (13)
LINENUMBER (14)
ALOAD (0)
ALOAD (1)
INVOKEVIRTUAL (Container$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LContainer;)
@@ -238,7 +238,7 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
public final class Container$Companion : java/lang/Object {
private void <init>() {
LABEL (L0)
LINENUMBER (13)
LINENUMBER (14)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -247,7 +247,7 @@ public final class Container$Companion : java/lang/Object {
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
LABEL (L0)
LINENUMBER (13)
LINENUMBER (14)
ALOAD (0)
INVOKESPECIAL (Container$Companion, <init>, ()V)
RETURN
@@ -283,7 +283,7 @@ public final class Container : java/lang/Object {
LDC (r)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (13)
LINENUMBER (14)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
ALOAD (0)
@@ -455,7 +455,7 @@ public final class Result$Companion : java/lang/Object {
private void <init>() {
LABEL (L0)
LINENUMBER (7)
LINENUMBER (8)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -464,7 +464,7 @@ public final class Result$Companion : java/lang/Object {
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
LABEL (L0)
LINENUMBER (7)
LINENUMBER (8)
ALOAD (0)
INVOKESPECIAL (Result$Companion, <init>, ()V)
RETURN
@@ -528,7 +528,7 @@ public final class Result$Err : Result {
static void <clinit>() {
LABEL (L0)
LINENUMBER (9)
LINENUMBER (10)
NEW
DUP
INVOKESPECIAL (Result$Err, <init>, ()V)
@@ -545,11 +545,11 @@ public final class Result$Err : Result {
private void <init>() {
LABEL (L0)
LINENUMBER (9)
LINENUMBER (10)
ALOAD (0)
ACONST_NULL
LABEL (L1)
LINENUMBER (9)
LINENUMBER (10)
INVOKESPECIAL (Result, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
RETURN
LABEL (L2)
@@ -572,7 +572,7 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
static void <clinit>() {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
NEW
DUP
INVOKESPECIAL (Result$OK$$serializer, <init>, ()V)
@@ -598,7 +598,7 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
private void <init>() {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -685,7 +685,7 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder p0) {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
ALOAD (1)
INVOKEVIRTUAL (Result$OK$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LResult$OK;)
@@ -704,7 +704,7 @@ public final class Result$OK$$serializer : java/lang/Object, kotlinx/serializati
public final class Result$OK$Companion : java/lang/Object {
private void <init>() {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -713,7 +713,7 @@ public final class Result$OK$Companion : java/lang/Object {
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
LABEL (L0)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
INVOKESPECIAL (Result$OK$Companion, <init>, ()V)
RETURN
@@ -749,7 +749,7 @@ public final class Result$OK : Result {
LDC (s)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (8)
LINENUMBER (9)
ALOAD (0)
ACONST_NULL
INVOKESPECIAL (Result, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
@@ -827,7 +827,7 @@ public abstract class Result : java/lang/Object {
private void <init>() {
LABEL (L0)
LINENUMBER (7)
LINENUMBER (8)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
RETURN
@@ -836,7 +836,7 @@ public abstract class Result : java/lang/Object {
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
LABEL (L0)
LINENUMBER (7)
LINENUMBER (8)
ALOAD (0)
INVOKESPECIAL (Result, <init>, ()V)
RETURN