FILE: metaSerializable.kt @R|kotlinx/serialization/MetaSerializable|() @R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|)) public final annotation class MySerializable : R|kotlin/Annotation| { public constructor(): R|MySerializable| { super() } } @R|kotlinx/serialization/MetaSerializable|() @R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|)) public final annotation class MySerializableWithInfo : R|kotlin/Annotation| { public constructor(value: R|kotlin/Int|, kclass: R|kotlin/reflect/KClass<*>|): R|MySerializableWithInfo| { super() } public final val value: R|kotlin/Int| = R|/value| public get(): R|kotlin/Int| public final val kclass: R|kotlin/reflect/KClass<*>| = R|/kclass| public get(): R|kotlin/reflect/KClass<*>| } @R|MySerializable|() public final class Project1 : R|kotlin/Any| { public constructor(name: R|kotlin/String|, language: R|kotlin/String|): R|Project1| { super() } public final val name: R|kotlin/String| = R|/name| public get(): R|kotlin/String| public final val language: R|kotlin/String| = R|/language| public get(): R|kotlin/String| public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|Project1.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|Project1|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Project1| 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|Project1.$serializer| { super() } } } @R|MySerializableWithInfo|(value = Int(123), kclass = (Q|kotlin/String|)) public final class Project2 : R|kotlin/Any| { public constructor(name: R|kotlin/String|, language: R|kotlin/String|): R|Project2| { super() } public final val name: R|kotlin/String| = R|/name| public get(): R|kotlin/String| public final val language: R|kotlin/String| = R|/language| public get(): R|kotlin/String| public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|Project2.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|Project2|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Project2| 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|Project2.$serializer| { super() } } } @R|kotlinx/serialization/Serializable|() public final class Wrapper : R|kotlin/Any| { public constructor(project: R|Project2|): R|Wrapper| { super() } @R|MySerializableWithInfo|(value = Int(234), kclass = (Q|kotlin/Int|)) public final val project: R|Project2| = R|/project| public get(): R|Project2| public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|Wrapper.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|Wrapper|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Wrapper| 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|Wrapper.$serializer| { super() } } } @R|kotlinx/serialization/Serializable|() @R|MySerializableWithInfo|(value = Int(123), kclass = (Q|kotlin/String|)) public final class Project3 : R|kotlin/Any| { public constructor(name: R|kotlin/String|, language: R|kotlin/String|): R|Project3| { super() } public final val name: R|kotlin/String| = R|/name| public get(): R|kotlin/String| public final val language: R|kotlin/String| = R|/language| public get(): R|kotlin/String| public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|Project3.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|Project3|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Project3| 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|Project3.$serializer| { super() } } } @R|kotlinx/serialization/Serializable|(with = (Q|MySerializer|)) @R|MySerializableWithInfo|(value = Int(123), kclass = (Q|kotlin/String|)) public final class Project4 : R|kotlin/Any| { public constructor(name: R|kotlin/String|, language: R|kotlin/String|): R|Project4| { super() } public final val name: R|kotlin/String| = R|/name| public get(): R|kotlin/String| public final val language: R|kotlin/String| = R|/language| public get(): R|kotlin/String| public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|Project4.Companion| { super() } } } @R|MySerializableWithInfo|(value = Int(123), kclass = (Q|kotlin/String|)) public sealed class TestSealed : R|kotlin/Any| { protected constructor(): R|TestSealed| { super() } @R|MySerializableWithInfo|(value = Int(123), kclass = (Q|kotlin/String|)) public final class A : R|TestSealed| { public constructor(value1: R|kotlin/String|): R|TestSealed.A| { super() } public final val value1: R|kotlin/String| = R|/value1| public get(): R|kotlin/String| public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|TestSealed.A.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|TestSealed.A|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|TestSealed.A| 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|TestSealed.A.$serializer| { super() } } } @R|MySerializableWithInfo|(value = Int(123), kclass = (Q|kotlin/String|)) public final class B : R|TestSealed| { public constructor(value2: R|kotlin/String|): R|TestSealed.B| { super() } public final val value2: R|kotlin/String| = R|/value2| public get(): R|kotlin/String| public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|TestSealed.B.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|TestSealed.B|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|TestSealed.B| 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|TestSealed.B.$serializer| { super() } } } public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|TestSealed.Companion| { super() } } } @R|MySerializable|() public abstract class TestAbstract : R|kotlin/Any| { public constructor(): R|TestAbstract| { super() } @R|MySerializableWithInfo|(value = Int(123), kclass = (Q|kotlin/String|)) public final class A : R|TestSealed| { public constructor(value1: R|kotlin/String|): R|TestAbstract.A| { super() } public final val value1: R|kotlin/String| = R|/value1| public get(): R|kotlin/String| public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|TestAbstract.A.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|TestAbstract.A|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|TestAbstract.A| 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|TestAbstract.A.$serializer| { super() } } } @R|MySerializableWithInfo|(value = Int(123), kclass = (Q|kotlin/String|)) public final class B : R|TestSealed| { public constructor(value2: R|kotlin/String|): R|TestAbstract.B| { super() } public final val value2: R|kotlin/String| = R|/value2| public get(): R|kotlin/String| public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|TestAbstract.B.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|TestAbstract.B|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|TestAbstract.B| 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|TestAbstract.B.$serializer| { super() } } } public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|TestAbstract.Companion| { super() } } } @R|MySerializableWithInfo|(value = Int(123), kclass = (Q|kotlin/String|)) public final enum class TestEnum : R|kotlin/Enum| { private constructor(): R|TestEnum| { super|>() } public final static enum entry Value1: R|TestEnum| public final static enum entry Value2: R|TestEnum| public final static fun values(): R|kotlin/Array| { } public final static fun valueOf(value: R|kotlin/String|): R|TestEnum| { } public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| public final companion object Companion : R|kotlin/Any| { public final fun serializer(): R|kotlinx/serialization/KSerializer| private constructor(): R|TestEnum.Companion| { super() } } } @R|MySerializableWithInfo|(value = Int(123), kclass = (Q|kotlin/String|)) public final object TestObject : R|kotlin/Any| { private constructor(): R|TestObject| { super() } public final fun serializer(): R|kotlinx/serialization/KSerializer| } public final object MySerializer : R|kotlinx/serialization/KSerializer| { private constructor(): R|MySerializer| { super() } public open override val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor| = R|kotlinx/serialization/descriptors/PrimitiveSerialDescriptor|(String(Project4), Q|kotlinx/serialization/descriptors/PrimitiveKind.STRING|) public get(): R|kotlinx/serialization/descriptors/SerialDescriptor| public open override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Project4|): R|kotlin/Unit| { ^serialize R|/encoder|.R|kotlinx/serialization/encoding/Encoder.encodeString|((R|/value|.R|/Project4.name|, String(:), R|/value|.R|/Project4.language|)) } public open override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Project4| { lval params: R|kotlin/collections/List| = R|/decoder|.R|kotlinx/serialization/encoding/Decoder.decodeString|().R|kotlin/text/split|(vararg(Char(:))) ^deserialize R|/Project4.Project4|(R|/params|.R|SubstitutionOverride|(Int(0)), R|/params|.R|SubstitutionOverride|(Int(1))) } } public final fun testMetaSerializable(): R|kotlin/Unit| { lval string: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|(Q|Project1|.R|/Project1.Companion.serializer|(), R|/Project1.Project1|(String(name), String(lang))) R|kotlin/test/assertEquals|(String({"name":"name","language":"lang"}), R|/string|) lval reconstructed: R|Project1| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.decodeFromString|(Q|Project1|.R|/Project1.Companion.serializer|(), R|/string|) R|kotlin/test/assertEquals|(String(name), R|/reconstructed|.R|/Project1.name|) R|kotlin/test/assertEquals|(String(lang), R|/reconstructed|.R|/Project1.language|) } public final fun testMetaSerializableWithInfo(): R|kotlin/Unit| { lval string: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|(Q|Project2|.R|/Project2.Companion.serializer|(), R|/Project2.Project2|(String(name), String(lang))) R|kotlin/test/assertEquals|(String({"name":"name","language":"lang"}), R|/string|) lval reconstructed: R|Project2| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.decodeFromString|(Q|Project2|.R|/Project2.Companion.serializer|(), R|/string|) R|kotlin/test/assertEquals|(String(name), R|/reconstructed|.R|/Project2.name|) R|kotlin/test/assertEquals|(String(lang), R|/reconstructed|.R|/Project2.language|) lval info: R|MySerializableWithInfo| = Q|Project2|.R|/Project2.Companion.serializer|().R|SubstitutionOverride|.R|kotlinx/serialization/descriptors/SerialDescriptor.annotations|.R|kotlin/collections/filterIsInstance|().R|kotlin/collections/first|() R|kotlin/test/assertEquals|(Int(123), R|/info|.R|/MySerializableWithInfo.value|) R|kotlin/test/assertEquals||>((Q|kotlin/String|), R|/info|.R|/MySerializableWithInfo.kclass|) } public final fun testMetaSerializableOnProperty(): R|kotlin/Unit| { lval info: R|MySerializableWithInfo| = Q|Wrapper|.R|/Wrapper.Companion.serializer|().R|SubstitutionOverride|.R|kotlinx/serialization/descriptors/SerialDescriptor.getElementAnnotations|(Int(0)).R|kotlin/collections/filterIsInstance|().R|kotlin/collections/first|() R|kotlin/test/assertEquals|(Int(234), R|/info|.R|/MySerializableWithInfo.value|) R|kotlin/test/assertEquals||>((Q|kotlin/Int|), R|/info|.R|/MySerializableWithInfo.kclass|) } public final fun testSerializableAndMetaAnnotation(): R|kotlin/Unit| { lval string: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|(Q|Project3|.R|/Project3.Companion.serializer|(), R|/Project3.Project3|(String(name), String(lang))) R|kotlin/test/assertEquals|(String({"name":"name","language":"lang"}), R|/string|) lval reconstructed: R|Project3| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.decodeFromString|(Q|Project3|.R|/Project3.Companion.serializer|(), R|/string|) R|kotlin/test/assertEquals|(String(name), R|/reconstructed|.R|/Project3.name|) R|kotlin/test/assertEquals|(String(lang), R|/reconstructed|.R|/Project3.language|) lval info: R|MySerializableWithInfo| = Q|Project3|.R|/Project3.Companion.serializer|().R|SubstitutionOverride|.R|kotlinx/serialization/descriptors/SerialDescriptor.annotations|.R|kotlin/collections/filterIsInstance|().R|kotlin/collections/first|() R|kotlin/test/assertEquals|(Int(123), R|/info|.R|/MySerializableWithInfo.value|) R|kotlin/test/assertEquals||>((Q|kotlin/String|), R|/info|.R|/MySerializableWithInfo.kclass|) } public final fun testCustomSerializerAndMetaAnnotation(): R|kotlin/Unit| { lval string: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|(Q|Project4|.R|/Project4.Companion.serializer|(), R|/Project4.Project4|(String(name), String(lang))) R|kotlin/test/assertEquals|(String(name:lang), R|/string|) lval reconstructed: R|Project4| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.decodeFromString|(Q|Project4|.R|/Project4.Companion.serializer|(), R|/string|) R|kotlin/test/assertEquals|(String(name), R|/reconstructed|.R|/Project4.name|) R|kotlin/test/assertEquals|(String(lang), R|/reconstructed|.R|/Project4.language|) } public final fun testSealed(): R|kotlin/Unit| { lval serializerA: R|kotlinx/serialization/KSerializer| = Q|TestSealed.A|.R|/TestSealed.A.Companion.serializer|() lval serializerB: R|kotlinx/serialization/KSerializer| = Q|TestSealed.B|.R|/TestSealed.B.Companion.serializer|() R|kotlin/test/assertNotNull||>(R|/serializerA|) R|kotlin/test/assertNotNull||>(R|/serializerB|) lval infoA: R|MySerializableWithInfo| = R|/serializerA|.R|SubstitutionOverride|.R|kotlinx/serialization/descriptors/SerialDescriptor.annotations|.R|kotlin/collections/filterIsInstance|().R|kotlin/collections/first|() lval infoB: R|MySerializableWithInfo| = R|/serializerB|.R|SubstitutionOverride|.R|kotlinx/serialization/descriptors/SerialDescriptor.annotations|.R|kotlin/collections/filterIsInstance|().R|kotlin/collections/first|() R|kotlin/test/assertEquals|(Int(123), R|/infoA|.R|/MySerializableWithInfo.value|) R|kotlin/test/assertEquals||>((Q|kotlin/String|), R|/infoA|.R|/MySerializableWithInfo.kclass|) R|kotlin/test/assertEquals|(Int(123), R|/infoB|.R|/MySerializableWithInfo.value|) R|kotlin/test/assertEquals||>((Q|kotlin/String|), R|/infoB|.R|/MySerializableWithInfo.kclass|) } public final fun testAbstract(): R|kotlin/Unit| { lval serializerA: R|kotlinx/serialization/KSerializer| = Q|TestAbstract.A|.R|/TestAbstract.A.Companion.serializer|() lval serializerB: R|kotlinx/serialization/KSerializer| = Q|TestAbstract.B|.R|/TestAbstract.B.Companion.serializer|() R|kotlin/test/assertNotNull||>(R|/serializerA|) R|kotlin/test/assertNotNull||>(R|/serializerB|) lval infoA: R|MySerializableWithInfo| = R|/serializerA|.R|SubstitutionOverride|.R|kotlinx/serialization/descriptors/SerialDescriptor.annotations|.R|kotlin/collections/filterIsInstance|().R|kotlin/collections/first|() lval infoB: R|MySerializableWithInfo| = R|/serializerB|.R|SubstitutionOverride|.R|kotlinx/serialization/descriptors/SerialDescriptor.annotations|.R|kotlin/collections/filterIsInstance|().R|kotlin/collections/first|() R|kotlin/test/assertEquals|(Int(123), R|/infoA|.R|/MySerializableWithInfo.value|) R|kotlin/test/assertEquals||>((Q|kotlin/String|), R|/infoA|.R|/MySerializableWithInfo.kclass|) R|kotlin/test/assertEquals|(Int(123), R|/infoB|.R|/MySerializableWithInfo.value|) R|kotlin/test/assertEquals||>((Q|kotlin/String|), R|/infoB|.R|/MySerializableWithInfo.kclass|) } public final fun testEnum(): R|kotlin/Unit| { lval serializer: R|kotlinx/serialization/KSerializer| = Q|TestEnum|.R|/TestEnum.Companion.serializer|() R|kotlin/test/assertNotNull||>(R|/serializer|) lval info: R|MySerializableWithInfo| = R|/serializer|.R|SubstitutionOverride|.R|kotlinx/serialization/descriptors/SerialDescriptor.annotations|.R|kotlin/collections/filterIsInstance|().R|kotlin/collections/first|() R|kotlin/test/assertEquals|(Int(123), R|/info|.R|/MySerializableWithInfo.value|) R|kotlin/test/assertEquals||>((Q|kotlin/String|), R|/info|.R|/MySerializableWithInfo.kclass|) } public final fun testObject(): R|kotlin/Unit| { lval serializer: R|kotlinx/serialization/KSerializer| = Q|TestObject|.R|/TestObject.serializer|() R|kotlin/test/assertNotNull||>(R|/serializer|) lval info: R|MySerializableWithInfo| = R|/serializer|.R|SubstitutionOverride|.R|kotlinx/serialization/descriptors/SerialDescriptor.annotations|.R|kotlin/collections/filterIsInstance|().R|kotlin/collections/first|() R|kotlin/test/assertEquals|(Int(123), R|/info|.R|/MySerializableWithInfo.value|) R|kotlin/test/assertEquals||>((Q|kotlin/String|), R|/info|.R|/MySerializableWithInfo.kclass|) } public final fun box(): R|kotlin/String| { R|/testMetaSerializable|() R|/testMetaSerializableWithInfo|() R|/testMetaSerializableOnProperty|() R|/testSealed|() R|/testAbstract|() R|/testEnum|() R|/testObject|() ^box String(OK) }