FILE: privatePropertiesSerialization.kt @R|kotlinx/serialization/Serializable|() public open class Parent : R|kotlin/Any| { public constructor(ctor: R|kotlin/Int|): R|Parent| { super() } private final val ctor: R|kotlin/Int| = R|/ctor| private get(): R|kotlin/Int| private final var body: R|kotlin/String| = String(42) private get(): R|kotlin/String| private set(value: R|kotlin/String|): R|kotlin/Unit| public final fun checkDeser(c: R|kotlin/Int|, b: R|kotlin/String|): R|kotlin/String| { when () { !=(this@R|/Parent|.R|/Parent.ctor|, R|/c|) -> { ^checkDeser (String(Ctor : ), this@R|/Parent|.R|/Parent.ctor|) } } when () { !=(this@R|/Parent|.R|/Parent.body|, R|/b|) -> { ^checkDeser (String(Body : ), this@R|/Parent|.R|/Parent.body|) } } ^checkDeser String(OK) } public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|Parent.Companion| { super() } } @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Parent|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Parent| public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor| public get(): R|kotlinx/serialization/descriptors/SerialDescriptor| public final override fun childSerializers(): R|kotlin/Array>| private constructor(): R|Parent.$serializer| { super() } } } @R|kotlinx/serialization/Serializable|() public final class Derived : R|Parent| { public constructor(): R|Derived| { super(Int(42)) } public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|Derived.Companion| { super() } } @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Derived|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Derived| public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor| public get(): R|kotlinx/serialization/descriptors/SerialDescriptor| public final override fun childSerializers(): R|kotlin/Array>| private constructor(): R|Derived.$serializer| { super() } } } public final fun test(targetString: R|kotlin/String|): R|kotlin/String| { lval c: R|Derived| = R|/Derived.Derived|() lval j: R|kotlinx/serialization/json/Json| = R|kotlinx/serialization/json/Json|( = Json@fun R|kotlinx/serialization/json/JsonBuilder|.(): R|kotlin/Unit| { this@R|special/anonymous|.R|kotlinx/serialization/json/JsonBuilder.encodeDefaults| = Boolean(true) } ) lval s: R|kotlin/String| = R|/j|.R|kotlinx/serialization/json/Json.encodeToString|(Q|Derived|.R|/Derived.Companion.serializer|(), R|/c|) when () { !=(R|/s|, R|/targetString|) -> { ^test R|/s| } } lval d: R|Derived| = R|/j|.R|kotlinx/serialization/json/Json.decodeFromString|(Q|Derived|.R|/Derived.Companion.serializer|(), String({"ctor":43,"body":"43"})) ^test R|/d|.R|/Parent.checkDeser|(Int(43), String(43)) ^test String(OK) } public final fun box(): R|kotlin/String| { ^box R|/test|(String({"ctor":42,"body":"42"})) }