FILE: classWithGenericParameters.kt @R|kotlinx/serialization/Serializable|() public final class GenericBox : R|kotlin/Any| { public constructor(i: R|kotlin/Int|, t: R|T|, vs: R|kotlin/collections/List|): R|GenericBox| { super() } public final val i: R|kotlin/Int| = R|/i| public get(): R|kotlin/Int| public final val t: R|T| = R|/t| public get(): R|T| public final val vs: R|kotlin/collections/List| = R|/vs| public get(): R|kotlin/collections/List| public final companion object Companion : R|kotlin/Any| { public final fun serializer(typeSerial0: R|kotlinx/serialization/KSerializer|, typeSerial1: R|kotlinx/serialization/KSerializer|): R|kotlinx/serialization/KSerializer>| private constructor(): R|GenericBox.Companion| { super() } } public final class $serializer : R|kotlinx/serialization/internal/GeneratedSerializer>| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|GenericBox|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|GenericBox| public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor| public get(): R|kotlinx/serialization/descriptors/SerialDescriptor| public final override fun childSerializers(): R|kotlin/Array>| public final override fun typeParametersSerializers(): R|kotlin/Array>| private constructor(): R|GenericBox.$serializer| { super() } public constructor(typeSerial0: R|kotlinx/serialization/KSerializer|, typeSerial1: R|kotlinx/serialization/KSerializer|): R|GenericBox.$serializer| } } public final fun box(): R|kotlin/String| { lval box: R|GenericBox| = R|/GenericBox.GenericBox|(Int(42), String(foo), R|kotlin/collections/listOf|(vararg(Boolean(true), Boolean(false)))) lval serial: R|kotlinx/serialization/KSerializer>| = Q|GenericBox|.R|/GenericBox.Companion.serializer|(Q|kotlin/String|.R|kotlinx/serialization/builtins/serializer|(), Q|kotlin/Boolean|.R|kotlinx/serialization/builtins/serializer|()) lval target: R|kotlin/String| = String({"i":42,"t":"foo","vs":[true,false]}) lval s: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString||>(R|/serial|, R|/box|) when () { !=(R|/target|, R|/s|) -> { ^box (String(Incorrect serialization: ), R|/s|) } } lval decoded: R|GenericBox| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.decodeFromString||>(R|/serial|, R|/s|) when () { !=(R|/box|.R|SubstitutionOverride|, R|/decoded|.R|SubstitutionOverride|) || !=(R|/box|.R|SubstitutionOverride|>|, R|/decoded|.R|SubstitutionOverride|>|) -> { ^box String(Incorrect deserialization) } } ^box String(OK) }