Added support of external serializers to the FIR
Co-authored-by: Leonid Startsev <leonid.startsev@jetbrains.com> Merge-request: KT-MR-7334 Merged-by: Sergey Shanshin <Sergey.Shanshin@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
817afcd4af
commit
5a1c2c56bd
+55
@@ -0,0 +1,55 @@
|
||||
FILE: externalSerializers.kt
|
||||
package com.example
|
||||
|
||||
public final class Data : R|kotlin/Any| {
|
||||
public constructor(j: R|kotlin/Int|): R|com/example/Data| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val j: R|kotlin/Int| = R|<local>/j|
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
@R|kotlinx/serialization/Serializer|(forClass = <getClass>(Q|com/example/Data|)) public final object ObjectSerializer : R|kotlin/Any|, R|kotlinx/serialization/KSerializer<com/example/Data>| {
|
||||
private constructor(): R|com/example/ObjectSerializer| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|com/example/Data|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|com/example/Data|
|
||||
|
||||
}
|
||||
@R|kotlinx/serialization/Serializer|(forClass = <getClass>(Q|com/example/Data|)) public final class ClassSerializer : R|kotlin/Any|, R|kotlinx/serialization/KSerializer<com/example/Data>| {
|
||||
public constructor(): R|com/example/ClassSerializer| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|com/example/Data|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|com/example/Data|
|
||||
|
||||
}
|
||||
public final fun box(): R|kotlin/String| {
|
||||
lval encodedForClass: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|<R|com/example/Data|>(R|com/example/ClassSerializer.ClassSerializer|(), R|com/example/Data.Data|(Int(1)))
|
||||
when () {
|
||||
!=(R|<local>/encodedForClass|, String({"j":1})) -> {
|
||||
^box R|<local>/encodedForClass|
|
||||
}
|
||||
}
|
||||
|
||||
lval encodedForObject: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|<R|com/example/Data|>(Q|com/example/ObjectSerializer|, R|com/example/Data.Data|(Int(2)))
|
||||
when () {
|
||||
!=(R|<local>/encodedForObject|, String({"j":2})) -> {
|
||||
^box R|<local>/encodedForObject|
|
||||
}
|
||||
}
|
||||
|
||||
^box String(OK)
|
||||
}
|
||||
Reference in New Issue
Block a user