Sort sealed class inheritors to ensure reproducible builds with IC

without this sorting the inheritors field in the metadata may depend on
whether some inheritors are compiled in the IC round or not.
This commit is contained in:
Ilya Chernikov
2022-03-25 18:49:14 +01:00
committed by teamcity
parent 53bc593062
commit 5d6e2b57a7
12 changed files with 71 additions and 70 deletions
@@ -36,7 +36,7 @@ fun FirRegularClass.getSealedClassInheritors(session: FirSession): List<ClassId>
@OptIn(SealedClassInheritorsProviderInternals::class)
fun FirRegularClass.setSealedClassInheritors(inheritors: List<ClassId>) {
require(this.isSealed)
sealedInheritorsAttr = inheritors
sealedInheritorsAttr = inheritors.sortedBy { it.asFqNameString() }
}
private object SealedClassInheritorsKey : FirDeclarationDataKey()
@@ -20,8 +20,8 @@ FILE fqName:<root> fileName:/kt44814.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:FirSourceElement modality:SEALED visibility:public superTypes:[kotlin.Any]
sealedSubclasses:
CLASS CLASS name:FirPsiSourceElement modality:FINAL visibility:public superTypes:[<root>.FirSourceElement]
CLASS CLASS name:FirLightSourceElement modality:FINAL visibility:public superTypes:[<root>.FirSourceElement]
CLASS CLASS name:FirPsiSourceElement modality:FINAL visibility:public superTypes:[<root>.FirSourceElement]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.FirSourceElement
CONSTRUCTOR visibility:protected <> () returnType:<root>.FirSourceElement [primary]
BLOCK_BODY
@@ -372,8 +372,8 @@ FILE fqName:<root> fileName:/kt44814.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:FirModifier modality:SEALED visibility:internal superTypes:[kotlin.Any]
sealedSubclasses:
CLASS CLASS name:FirPsiModifier modality:FINAL visibility:public superTypes:[<root>.FirModifier<<root>.ASTNode>]
CLASS CLASS name:FirLightModifier modality:FINAL visibility:public superTypes:[<root>.FirModifier<<root>.LighterASTNode>]
CLASS CLASS name:FirPsiModifier modality:FINAL visibility:public superTypes:[<root>.FirModifier<<root>.ASTNode>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.FirModifier<Node of <root>.FirModifier>
TYPE_PARAMETER name:Node index:0 variance: superTypes:[kotlin.Any] reified:false
CONSTRUCTOR visibility:protected <> (node:Node of <root>.FirModifier, token:<root>.KtModifierKeywordToken) returnType:<root>.FirModifier<Node of <root>.FirModifier> [primary]
@@ -511,8 +511,8 @@ FILE fqName:<root> fileName:/kt44814.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:FirModifierList modality:SEALED visibility:internal superTypes:[kotlin.Any]
sealedSubclasses:
CLASS CLASS name:FirPsiModifierList modality:FINAL visibility:public superTypes:[<root>.FirModifierList]
CLASS CLASS name:FirLightModifierList modality:FINAL visibility:public superTypes:[<root>.FirModifierList]
CLASS CLASS name:FirPsiModifierList modality:FINAL visibility:public superTypes:[<root>.FirModifierList]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.FirModifierList
CONSTRUCTOR visibility:protected <> () returnType:<root>.FirModifierList [primary]
BLOCK_BODY
+3 -3
View File
@@ -20,8 +20,8 @@ FILE fqName:<root> fileName:/kt44814.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:FirSourceElement modality:SEALED visibility:public superTypes:[kotlin.Any]
sealedSubclasses:
CLASS CLASS name:FirPsiSourceElement modality:FINAL visibility:public superTypes:[<root>.FirSourceElement]
CLASS CLASS name:FirLightSourceElement modality:FINAL visibility:public superTypes:[<root>.FirSourceElement]
CLASS CLASS name:FirPsiSourceElement modality:FINAL visibility:public superTypes:[<root>.FirSourceElement]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.FirSourceElement
CONSTRUCTOR visibility:protected <> () returnType:<root>.FirSourceElement [primary]
BLOCK_BODY
@@ -372,8 +372,8 @@ FILE fqName:<root> fileName:/kt44814.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:FirModifier modality:SEALED visibility:internal superTypes:[kotlin.Any]
sealedSubclasses:
CLASS CLASS name:FirPsiModifier modality:FINAL visibility:public superTypes:[<root>.FirModifier<<root>.ASTNode>]
CLASS CLASS name:FirLightModifier modality:FINAL visibility:public superTypes:[<root>.FirModifier<<root>.LighterASTNode>]
CLASS CLASS name:FirPsiModifier modality:FINAL visibility:public superTypes:[<root>.FirModifier<<root>.ASTNode>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.FirModifier<Node of <root>.FirModifier>
TYPE_PARAMETER name:Node index:0 variance: superTypes:[kotlin.Any] reified:false
CONSTRUCTOR visibility:protected <> (node:Node of <root>.FirModifier, token:<root>.KtModifierKeywordToken) returnType:<root>.FirModifier<Node of <root>.FirModifier> [primary]
@@ -511,8 +511,8 @@ FILE fqName:<root> fileName:/kt44814.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:FirModifierList modality:SEALED visibility:internal superTypes:[kotlin.Any]
sealedSubclasses:
CLASS CLASS name:FirPsiModifierList modality:FINAL visibility:public superTypes:[<root>.FirModifierList]
CLASS CLASS name:FirLightModifierList modality:FINAL visibility:public superTypes:[<root>.FirModifierList]
CLASS CLASS name:FirPsiModifierList modality:FINAL visibility:public superTypes:[<root>.FirModifierList]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.FirModifierList
CONSTRUCTOR visibility:protected <> () returnType:<root>.FirModifierList [primary]
BLOCK_BODY
@@ -14,7 +14,7 @@ fun box(): String {
val klass = Base::class
if (!klass.isSealed) return "Error: Base is not sealed"
if (klass.isAbstract) return "Error: Base is not abstract"
return klass.sealedSubclasses
return klass.sealedSubclasses.asReversed()
.joinToString("") { it.simpleName ?: "_No name provided_" }
.takeIf { it.isNotBlank() }
?: "_No sealed subclasses found_"
@@ -14,7 +14,7 @@ fun box(): String {
val klass = Base::class
if (!klass.isSealed) return "Error: Base is not sealed"
if (klass.isAbstract) return "Error: Base is abstract"
return klass.sealedSubclasses
return klass.sealedSubclasses.asReversed()
.joinToString("") { it.simpleName ?: "_No name provided_" }
.takeIf { it.isNotBlank() }
?: "_No sealed subclasses found_"
+1 -1
View File
@@ -2,8 +2,8 @@ FILE fqName:<root> fileName:/sealedClasses.kt
CLASS CLASS name:Expr modality:SEALED visibility:public superTypes:[kotlin.Any]
sealedSubclasses:
CLASS CLASS name:Const modality:FINAL visibility:public superTypes:[<root>.Expr]
CLASS CLASS name:Sum modality:FINAL visibility:public superTypes:[<root>.Expr]
CLASS OBJECT name:NotANumber modality:FINAL visibility:public superTypes:[<root>.Expr]
CLASS CLASS name:Sum modality:FINAL visibility:public superTypes:[<root>.Expr]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Expr
CONSTRUCTOR visibility:protected <> () returnType:<root>.Expr [primary]
BLOCK_BODY
@@ -1,9 +1,9 @@
FILE fqName:<root> fileName:/ArrayMap.kt
CLASS CLASS name:ArrayMap modality:SEALED visibility:public superTypes:[kotlin.collections.Iterable<T of <root>.ArrayMap>]
sealedSubclasses:
CLASS CLASS name:ArrayMapImpl modality:FINAL visibility:internal superTypes:[<root>.ArrayMap<T of <root>.ArrayMapImpl>]
CLASS OBJECT name:EmptyArrayMap modality:FINAL visibility:internal superTypes:[<root>.ArrayMap<kotlin.Nothing>]
CLASS CLASS name:OneElementArrayMap modality:FINAL visibility:internal superTypes:[<root>.ArrayMap<T of <root>.OneElementArrayMap>]
CLASS CLASS name:ArrayMapImpl modality:FINAL visibility:internal superTypes:[<root>.ArrayMap<T of <root>.ArrayMapImpl>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.ArrayMap<T of <root>.ArrayMap>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
CONSTRUCTOR visibility:protected <> () returnType:<root>.ArrayMap<T of <root>.ArrayMap> [primary]
+1 -1
View File
@@ -1,9 +1,9 @@
FILE fqName:<root> fileName:/ArrayMap.kt
CLASS CLASS name:ArrayMap modality:SEALED visibility:public superTypes:[kotlin.collections.Iterable<T of <root>.ArrayMap>]
sealedSubclasses:
CLASS CLASS name:ArrayMapImpl modality:FINAL visibility:internal superTypes:[<root>.ArrayMap<T of <root>.ArrayMapImpl>]
CLASS OBJECT name:EmptyArrayMap modality:FINAL visibility:internal superTypes:[<root>.ArrayMap<kotlin.Nothing>]
CLASS CLASS name:OneElementArrayMap modality:FINAL visibility:internal superTypes:[<root>.ArrayMap<T of <root>.OneElementArrayMap>]
CLASS CLASS name:ArrayMapImpl modality:FINAL visibility:internal superTypes:[<root>.ArrayMap<T of <root>.ArrayMapImpl>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.ArrayMap<T of <root>.ArrayMap>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
CONSTRUCTOR visibility:protected <> () returnType:<root>.ArrayMap<T of <root>.ArrayMap> [primary]
@@ -191,7 +191,7 @@ class LazyJavaClassDescriptor(
val attributes = TypeUsage.COMMON.toAttributes()
jClass.permittedTypes.mapNotNull {
c.typeResolver.transformJavaType(it, attributes).constructor.declarationDescriptor as? ClassDescriptor
}
}.sortedBy { it.fqNameSafe.asString() }
} else {
emptyList()
}
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
import org.jetbrains.kotlin.resolve.descriptorUtil.parents
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.resolve.scopes.MemberScope
@@ -78,7 +79,7 @@ object CliSealedClassInheritorsProvider : SealedClassInheritorsProvider() {
)
}
collectSubclasses(sealedClass.unsubstitutedInnerClassesScope, collectNested = true)
return result
return result.sortedBy { it.fqNameSafe.asString() }
}
}
@@ -308,12 +308,12 @@ final class Result$Companion$$cachedSerializer$delegate$1 : kotlin/jvm/internal/
ASTORE (1)
ALOAD (1)
ICONST_0
LDC (LResult$OK;)
LDC (LResult$Err;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ALOAD (1)
ICONST_1
LDC (LResult$Err;)
LDC (LResult$OK;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ALOAD (1)
@@ -322,11 +322,6 @@ final class Result$Companion$$cachedSerializer$delegate$1 : kotlin/jvm/internal/
ASTORE (1)
ALOAD (1)
ICONST_0
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ICONST_1
NEW (kotlinx/serialization/internal/ObjectSerializer)
DUP
LDC (Result.Err)
@@ -335,6 +330,11 @@ final class Result$Companion$$cachedSerializer$delegate$1 : kotlin/jvm/internal/
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;)V)
CHECKCAST (kotlinx/serialization/KSerializer)
ARETURN
@@ -841,12 +841,12 @@ public final class X$Companion : java/lang/Object {
ASTORE (1)
ALOAD (1)
ICONST_0
LDC (LResult$OK;)
LDC (LResult$Err;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ALOAD (1)
ICONST_1
LDC (LResult$Err;)
LDC (LResult$OK;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ALOAD (1)
@@ -855,11 +855,6 @@ public final class X$Companion : java/lang/Object {
ASTORE (1)
ALOAD (1)
ICONST_0
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ICONST_1
NEW (kotlinx/serialization/internal/ObjectSerializer)
DUP
LDC (Result.Err)
@@ -868,6 +863,11 @@ public final class X$Companion : java/lang/Object {
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
ALOAD (1)
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;)V)
CHECKCAST (kotlinx/serialization/KSerializer)
ARETURN
@@ -53,29 +53,29 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
ANEWARRAY (kotlin/reflect/KClass)
DUP
ICONST_0
LDC (LResult$OK;)
LDC (LResult$Err;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
DUP
ICONST_1
LDC (LResult$Err;)
LDC (LResult$OK;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ICONST_2
ANEWARRAY (kotlinx/serialization/KSerializer)
DUP
ICONST_0
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
DUP
ICONST_1
NEW (kotlinx/serialization/internal/ObjectSerializer)
DUP
LDC (Result.Err)
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;)V)
AASTORE
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
ARETURN
@@ -112,29 +112,29 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
ANEWARRAY (kotlin/reflect/KClass)
DUP
ICONST_0
LDC (LResult$OK;)
LDC (LResult$Err;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
DUP
ICONST_1
LDC (LResult$Err;)
LDC (LResult$OK;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ICONST_2
ANEWARRAY (kotlinx/serialization/KSerializer)
DUP
ICONST_0
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
DUP
ICONST_1
NEW (kotlinx/serialization/internal/ObjectSerializer)
DUP
LDC (Result.Err)
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;)V)
AASTORE
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)
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;)
@@ -166,29 +166,29 @@ public final class Container$$serializer : java/lang/Object, kotlinx/serializati
ANEWARRAY (kotlin/reflect/KClass)
DUP
ICONST_0
LDC (LResult$OK;)
LDC (LResult$Err;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
DUP
ICONST_1
LDC (LResult$Err;)
LDC (LResult$OK;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ICONST_2
ANEWARRAY (kotlinx/serialization/KSerializer)
DUP
ICONST_0
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
DUP
ICONST_1
NEW (kotlinx/serialization/internal/ObjectSerializer)
DUP
LDC (Result.Err)
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;)V)
AASTORE
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)
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;)
@@ -344,29 +344,29 @@ public final class Container : java/lang/Object {
ANEWARRAY (kotlin/reflect/KClass)
DUP
ICONST_0
LDC (LResult$OK;)
LDC (LResult$Err;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
DUP
ICONST_1
LDC (LResult$Err;)
LDC (LResult$OK;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ICONST_2
ANEWARRAY (kotlinx/serialization/KSerializer)
DUP
ICONST_0
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
DUP
ICONST_1
NEW (kotlinx/serialization/internal/ObjectSerializer)
DUP
LDC (Result.Err)
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;)V)
AASTORE
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)
GETFIELD (Container, r, LResult;)
@@ -407,29 +407,29 @@ final class Result$Companion$serializer$1 : kotlin/jvm/internal/Lambda, kotlin/j
ANEWARRAY (kotlin/reflect/KClass)
DUP
ICONST_0
LDC (LResult$OK;)
LDC (LResult$Err;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
DUP
ICONST_1
LDC (LResult$Err;)
LDC (LResult$OK;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ICONST_2
ANEWARRAY (kotlinx/serialization/KSerializer)
DUP
ICONST_0
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
DUP
ICONST_1
NEW (kotlinx/serialization/internal/ObjectSerializer)
DUP
LDC (Result.Err)
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;)V)
AASTORE
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
LABEL (L1)
@@ -910,29 +910,29 @@ public final class X$Companion : java/lang/Object {
ANEWARRAY (kotlin/reflect/KClass)
DUP
ICONST_0
LDC (LResult$OK;)
LDC (LResult$Err;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
DUP
ICONST_1
LDC (LResult$Err;)
LDC (LResult$OK;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ICONST_2
ANEWARRAY (kotlinx/serialization/KSerializer)
DUP
ICONST_0
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
CHECKCAST (kotlinx/serialization/KSerializer)
AASTORE
DUP
ICONST_1
NEW (kotlinx/serialization/internal/ObjectSerializer)
DUP
LDC (Result.Err)
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;)V)
AASTORE
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
LABEL (L1)