[Serialization] Reorganize module structure
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
// WITH_STDLIB
|
||||
|
||||
// FILE: a.kt
|
||||
|
||||
package a
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.descriptors.*
|
||||
import kotlinx.serialization.encoding.*
|
||||
|
||||
object MultiplyingIntSerializer : KSerializer<Int> {
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = PrimitiveSerialDescriptor("MultiplyingInt", PrimitiveKind.INT)
|
||||
|
||||
override fun deserialize(decoder: Decoder): Int {
|
||||
return decoder.decodeInt() / 2
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: Int) {
|
||||
encoder.encodeInt(value * 2)
|
||||
}
|
||||
}
|
||||
|
||||
data class Cont(val i: Int)
|
||||
|
||||
object ContSerializer: KSerializer<Cont> {
|
||||
override fun deserialize(decoder: Decoder): Cont {
|
||||
return Cont(decoder.decodeInt())
|
||||
}
|
||||
|
||||
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("ContSerializer", PrimitiveKind.INT)
|
||||
|
||||
override fun serialize(encoder: Encoder, value: Cont) {
|
||||
encoder.encodeInt(value.i)
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
@file:UseContextualSerialization(Cont::class)
|
||||
@file:UseSerializers(MultiplyingIntSerializer::class)
|
||||
|
||||
package a
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
import kotlinx.serialization.modules.*
|
||||
|
||||
@Serializable
|
||||
class Holder(
|
||||
val i: Int,
|
||||
val c: Cont
|
||||
)
|
||||
|
||||
fun testOnFile(): String {
|
||||
val j = Json {
|
||||
serializersModule = SerializersModule {
|
||||
contextual(ContSerializer)
|
||||
}
|
||||
}
|
||||
val h = Holder(3, Cont(4))
|
||||
val str = j.encodeToString(
|
||||
Holder.serializer(),
|
||||
h
|
||||
)
|
||||
if ("""{"i":6,"c":4}""" != str) return str
|
||||
val decoded = j.decodeFromString(Holder.serializer(), str)
|
||||
if (decoded.i != h.i) return "i: ${decoded.i}"
|
||||
if (decoded.c.i != h.c.i) return "c.i: ${decoded.c.i}"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return testOnFile()
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
// WITH_STDLIB
|
||||
|
||||
package a
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
import kotlinx.serialization.descriptors.*
|
||||
import kotlinx.serialization.encoding.*
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class Dummy
|
||||
|
||||
class DummyBox<T>
|
||||
|
||||
@Serializable(ClassSerializerOnClass::class)
|
||||
class DummySpecified
|
||||
|
||||
class ClassSerializerGeneric : KSerializer<DummyBox<String>> {
|
||||
override val descriptor get() = PrimitiveSerialDescriptor("ClassSerializerGeneric", PrimitiveKind.INT)
|
||||
override fun deserialize(decoder: Decoder): DummyBox<String> = TODO()
|
||||
override fun serialize(encoder: Encoder, value:DummyBox<String>): Unit = TODO()
|
||||
}
|
||||
|
||||
class ClassSerializerDummy : KSerializer<Dummy> {
|
||||
override val descriptor get() = PrimitiveSerialDescriptor("ClassSerializerDummy", PrimitiveKind.INT)
|
||||
override fun deserialize(decoder: Decoder): Dummy = TODO()
|
||||
override fun serialize(encoder: Encoder, value: Dummy): Unit = TODO()
|
||||
}
|
||||
|
||||
object ObjectSerializerGeneric: KSerializer<DummyBox<String>> {
|
||||
override val descriptor get() = PrimitiveSerialDescriptor("ObjectSerializerGeneric", PrimitiveKind.INT)
|
||||
override fun deserialize(decoder: Decoder): DummyBox<String> = TODO()
|
||||
override fun serialize(encoder: Encoder, value: DummyBox<String>): Unit = TODO()
|
||||
}
|
||||
|
||||
object ObjectSerializerDummy: KSerializer<Dummy> {
|
||||
override val descriptor get() = PrimitiveSerialDescriptor("ObjectSerializerDummy", PrimitiveKind.INT)
|
||||
override fun deserialize(decoder: Decoder): Dummy = TODO()
|
||||
override fun serialize(encoder: Encoder, value:Dummy): Unit = TODO()
|
||||
}
|
||||
|
||||
class ClassSerializerOnClass: KSerializer<DummySpecified> {
|
||||
override val descriptor get() = PrimitiveSerialDescriptor("ClassSerializerOnClass", PrimitiveKind.INT)
|
||||
override fun deserialize(decoder: Decoder): DummySpecified = TODO()
|
||||
override fun serialize(encoder: Encoder, value:DummySpecified): Unit = TODO()
|
||||
}
|
||||
|
||||
@Serializable
|
||||
class Holder(
|
||||
@Serializable(ClassSerializerGeneric::class) val a: DummyBox<String>,
|
||||
@Serializable(ClassSerializerDummy::class) val b: Dummy,
|
||||
@Serializable(ObjectSerializerGeneric::class) val c: DummyBox<String>,
|
||||
@Serializable(ObjectSerializerDummy::class) val d: Dummy,
|
||||
val e: DummySpecified
|
||||
)
|
||||
|
||||
fun box(): String {
|
||||
val descs = Holder.serializer().descriptor.elementDescriptors.toList()
|
||||
assertEquals("ClassSerializerGeneric", descs[0].serialName)
|
||||
assertEquals("ClassSerializerDummy", descs[1].serialName)
|
||||
assertEquals("ObjectSerializerGeneric", descs[2].serialName)
|
||||
assertEquals("ObjectSerializerDummy", descs[3].serialName)
|
||||
assertEquals("ClassSerializerOnClass", descs[4].serialName)
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
import kotlinx.serialization.internal.*
|
||||
|
||||
enum class Plain {
|
||||
A, B
|
||||
}
|
||||
|
||||
@Serializable enum class WithNames {
|
||||
@SerialName("A") ENTRY1,
|
||||
@SerialName("B") ENTRY2
|
||||
}
|
||||
|
||||
@Serializable
|
||||
class Holder(val p: Plain, val w: WithNames)
|
||||
|
||||
@OptIn(InternalSerializationApi::class)
|
||||
fun testSerializers(): String {
|
||||
val cs = (Holder.serializer() as GeneratedSerializer<*>).childSerializers()
|
||||
val str1 = cs[0].toString()
|
||||
if (!str1.contains("kotlinx.serialization.internal.EnumSerializer")) return str1
|
||||
|
||||
/**
|
||||
* Serialization 1.4.1+ have runtime factories to create EnumSerializer instead of synthetic $serializer, saving bytecode
|
||||
* and bringing consistency. After updating the version, uncomment this block.
|
||||
*/
|
||||
// val str2 = cs[1].toString()
|
||||
// if (!str2.contains("kotlinx.serialization.internal.EnumSerializer")) return str2
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testSerialization(previous: String): String {
|
||||
if (previous != "OK") return previous
|
||||
val h = Holder(Plain.B, WithNames.ENTRY1)
|
||||
val s = Json.encodeToString(Holder.serializer(), h)
|
||||
if (s != """{"p":"B","w":"A"}""") return s
|
||||
if (Json.decodeFromString(Holder.serializer(), s).w != WithNames.ENTRY1) return "Deserialization failure"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return testSerialization(testSerializers())
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
|
||||
@Serializable
|
||||
data class Foo<T>(val i: Int, val t: T? = null)
|
||||
|
||||
@Serializable
|
||||
class Holder(val f1: Foo<String>, val f2: Foo<Int>)
|
||||
|
||||
fun box(): String {
|
||||
val holder = Holder(Foo(1, "1"), Foo(2))
|
||||
val str = Json.encodeToString(Holder.serializer(), holder)
|
||||
if (str != """{"f1":{"i":1,"t":"1"},"f2":{"i":2}}""") return str
|
||||
val decoded = Json.decodeFromString(Holder.serializer(), str)
|
||||
if (decoded.f1.t != holder.f1.t) return "f1.t: ${decoded.f1.t}"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
import kotlinx.serialization.internal.*
|
||||
|
||||
@Serializable
|
||||
@JvmInline
|
||||
value class Foo(val i: Int)
|
||||
|
||||
@Serializable
|
||||
class Holder(val f: Foo)
|
||||
|
||||
fun box(): String {
|
||||
if(!Foo.serializer().descriptor.isInline) return "Incorrect descriptor"
|
||||
val s = Json.encodeToString(Holder.serializer(), Holder(Foo(42)))
|
||||
if (s != """{"f":42}""") return s
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,185 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.encoding.*
|
||||
import kotlinx.serialization.descriptors.*
|
||||
import kotlinx.serialization.json.*
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.test.*
|
||||
|
||||
// TODO: for this test to work, runtime dependency should be updated to (yet unreleased) serialization with @MetaSerializable annotation
|
||||
|
||||
@MetaSerializable
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY)
|
||||
annotation class MySerializable
|
||||
|
||||
@MetaSerializable
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY)
|
||||
annotation class MySerializableWithInfo(
|
||||
val value: Int,
|
||||
val kclass: KClass<*>
|
||||
)
|
||||
|
||||
@MySerializable
|
||||
class Project1(val name: String, val language: String)
|
||||
|
||||
@MySerializableWithInfo(123, String::class)
|
||||
class Project2(val name: String, val language: String)
|
||||
|
||||
@Serializable
|
||||
class Wrapper(
|
||||
@MySerializableWithInfo(234, Int::class) val project: Project2
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@MySerializableWithInfo(123, String::class)
|
||||
class Project3(val name: String, val language: String)
|
||||
|
||||
@Serializable(with = MySerializer::class)
|
||||
@MySerializableWithInfo(123, String::class)
|
||||
class Project4(val name: String, val language: String)
|
||||
|
||||
@MySerializableWithInfo(123, String::class)
|
||||
sealed class TestSealed {
|
||||
@MySerializableWithInfo(123, String::class)
|
||||
class A(val value1: String) : TestSealed()
|
||||
@MySerializableWithInfo(123, String::class)
|
||||
class B(val value2: String) : TestSealed()
|
||||
}
|
||||
|
||||
@MySerializable
|
||||
abstract class TestAbstract {
|
||||
@MySerializableWithInfo(123, String::class)
|
||||
class A(val value1: String) : TestSealed()
|
||||
|
||||
@MySerializableWithInfo(123, String::class)
|
||||
class B(val value2: String) : TestSealed()
|
||||
}
|
||||
|
||||
@MySerializableWithInfo(123, String::class)
|
||||
enum class TestEnum { Value1, Value2 }
|
||||
|
||||
@MySerializableWithInfo(123, String::class)
|
||||
object TestObject
|
||||
|
||||
object MySerializer : KSerializer<Project4> {
|
||||
|
||||
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Project4", PrimitiveKind.STRING)
|
||||
|
||||
override fun serialize(encoder: Encoder, value: Project4) = encoder.encodeString("${value.name}:${value.language}")
|
||||
|
||||
override fun deserialize(decoder: Decoder): Project4 {
|
||||
val params = decoder.decodeString().split(':')
|
||||
return Project4(params[0], params[1])
|
||||
}
|
||||
}
|
||||
|
||||
fun testMetaSerializable() {
|
||||
val string = Json.encodeToString(Project1.serializer(), Project1("name", "lang"))
|
||||
assertEquals("""{"name":"name","language":"lang"}""", string)
|
||||
|
||||
val reconstructed = Json.decodeFromString(Project1.serializer(), string)
|
||||
assertEquals("name", reconstructed.name)
|
||||
assertEquals("lang", reconstructed.language)
|
||||
}
|
||||
|
||||
fun testMetaSerializableWithInfo() {
|
||||
val string = Json.encodeToString(Project2.serializer(), Project2("name", "lang"))
|
||||
assertEquals("""{"name":"name","language":"lang"}""", string)
|
||||
|
||||
val reconstructed = Json.decodeFromString(Project2.serializer(), string)
|
||||
assertEquals("name", reconstructed.name)
|
||||
assertEquals("lang", reconstructed.language)
|
||||
|
||||
val info = Project2.serializer().descriptor.annotations.filterIsInstance<MySerializableWithInfo>().first()
|
||||
assertEquals(123, info.value)
|
||||
assertEquals(String::class, info.kclass)
|
||||
}
|
||||
|
||||
fun testMetaSerializableOnProperty() {
|
||||
val info = Wrapper.serializer().descriptor.getElementAnnotations(0).filterIsInstance<MySerializableWithInfo>().first()
|
||||
assertEquals(234, info.value)
|
||||
assertEquals(Int::class, info.kclass)
|
||||
}
|
||||
|
||||
fun testSerializableAndMetaAnnotation() {
|
||||
val string = Json.encodeToString(Project3.serializer(), Project3("name", "lang"))
|
||||
assertEquals("""{"name":"name","language":"lang"}""", string)
|
||||
|
||||
val reconstructed = Json.decodeFromString(Project3.serializer(), string)
|
||||
assertEquals("name", reconstructed.name)
|
||||
assertEquals("lang", reconstructed.language)
|
||||
|
||||
val info = Project3.serializer().descriptor.annotations.filterIsInstance<MySerializableWithInfo>().first()
|
||||
assertEquals(123, info.value)
|
||||
assertEquals(String::class, info.kclass)
|
||||
}
|
||||
|
||||
fun testCustomSerializerAndMetaAnnotation() {
|
||||
val string = Json.encodeToString(Project4.serializer(), Project4("name", "lang"))
|
||||
assertEquals("""name:lang""", string)
|
||||
|
||||
val reconstructed = Json.decodeFromString(Project4.serializer(), string)
|
||||
assertEquals("name", reconstructed.name)
|
||||
assertEquals("lang", reconstructed.language)
|
||||
}
|
||||
|
||||
fun testSealed() {
|
||||
val serializerA = TestSealed.A.serializer()
|
||||
val serializerB = TestSealed.B.serializer()
|
||||
assertNotNull(serializerA)
|
||||
assertNotNull(serializerB)
|
||||
|
||||
val infoA = serializerA.descriptor.annotations.filterIsInstance<MySerializableWithInfo>().first()
|
||||
val infoB = serializerB.descriptor.annotations.filterIsInstance<MySerializableWithInfo>().first()
|
||||
assertEquals(123, infoA.value)
|
||||
assertEquals(String::class, infoA.kclass)
|
||||
assertEquals(123, infoB.value)
|
||||
assertEquals(String::class, infoB.kclass)
|
||||
}
|
||||
|
||||
fun testAbstract() {
|
||||
val serializerA = TestAbstract.A.serializer()
|
||||
val serializerB = TestAbstract.B.serializer()
|
||||
assertNotNull(serializerA)
|
||||
assertNotNull(serializerB)
|
||||
|
||||
val infoA = serializerA.descriptor.annotations.filterIsInstance<MySerializableWithInfo>().first()
|
||||
val infoB = serializerB.descriptor.annotations.filterIsInstance<MySerializableWithInfo>().first()
|
||||
assertEquals(123, infoA.value)
|
||||
assertEquals(String::class, infoA.kclass)
|
||||
assertEquals(123, infoB.value)
|
||||
assertEquals(String::class, infoB.kclass)
|
||||
}
|
||||
|
||||
fun testEnum() {
|
||||
val serializer = TestEnum.serializer()
|
||||
assertNotNull(serializer)
|
||||
|
||||
val info = serializer.descriptor.annotations.filterIsInstance<MySerializableWithInfo>().first()
|
||||
assertEquals(123, info.value)
|
||||
assertEquals(String::class, info.kclass)
|
||||
}
|
||||
|
||||
fun testObject() {
|
||||
val serializer = TestObject.serializer()
|
||||
assertNotNull(serializer)
|
||||
|
||||
val info = serializer.descriptor.annotations.filterIsInstance<MySerializableWithInfo>().first()
|
||||
assertEquals(123, info.value)
|
||||
assertEquals(String::class, info.kclass)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
testMetaSerializable()
|
||||
testMetaSerializableWithInfo()
|
||||
testMetaSerializableOnProperty()
|
||||
testSealed()
|
||||
testAbstract()
|
||||
testEnum()
|
||||
testObject()
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
// WITH_STDLIB
|
||||
|
||||
// MODULE: lib
|
||||
// FILE: lib.kt
|
||||
|
||||
package a
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
open class OpenBody {
|
||||
var optional: String? = "foo"
|
||||
}
|
||||
|
||||
@Serializable
|
||||
abstract class AbstractConstructor(var optional: String = "foo")
|
||||
|
||||
|
||||
// MODULE: app(lib)
|
||||
// FILE: app.kt
|
||||
|
||||
package test
|
||||
|
||||
import a.*
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@Serializable
|
||||
class Test1: OpenBody()
|
||||
|
||||
@Serializable
|
||||
class Test2: AbstractConstructor()
|
||||
|
||||
fun test1() {
|
||||
val string = Json.encodeToString(Test1.serializer(), Test1())
|
||||
assertEquals("{}", string)
|
||||
val reconstructed = Json.decodeFromString(Test1.serializer(), string)
|
||||
assertEquals("foo", reconstructed.optional)
|
||||
}
|
||||
|
||||
fun test2() {
|
||||
val string = Json.encodeToString(Test2.serializer(), Test2())
|
||||
assertEquals("{}", string)
|
||||
val reconstructed = Json.decodeFromString(Test2.serializer(), string)
|
||||
assertEquals("foo", reconstructed.optional)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
test1()
|
||||
test2()
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
// WITH_STDLIB
|
||||
|
||||
package a
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
import kotlinx.serialization.descriptors.*
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
interface I
|
||||
|
||||
sealed interface SI
|
||||
|
||||
@Serializable
|
||||
sealed interface SSI
|
||||
|
||||
@Serializable
|
||||
class Holder(
|
||||
val i: I,
|
||||
val si: SI,
|
||||
val ssi: SSI
|
||||
)
|
||||
|
||||
fun SerialDescriptor.checkKind(index: Int, kind: String) {
|
||||
assertEquals(kind, getElementDescriptor(index).kind.toString())
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val desc = Holder.serializer().descriptor
|
||||
desc.checkKind(0, "OPEN")
|
||||
desc.checkKind(1, "OPEN")
|
||||
desc.checkKind(2, "SEALED")
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
// WITH_STDLIB
|
||||
|
||||
/**
|
||||
* This test checks that in the case when serialization plugin is applied, but kotlinx-serialization-core runtime is not present in compile classpath,
|
||||
* compilation of regular Kotlin classes still finishes succesfully.
|
||||
*
|
||||
* Such requirement is needed for cases when plugin is applied to a Gradle module, but runtime dependency is provided only in certain configurations,
|
||||
* e.g. only in `testImplementation` configuration (see :wasm:wasm-ir module). In such setup, production sources have plugin applied, but no runtime in classpath.
|
||||
*/
|
||||
|
||||
data class X(val i: Int) {
|
||||
companion object {
|
||||
fun x(): X = X(42)
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val i = X.x().i
|
||||
return if (i == 42) "OK" else i.toString()
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,13 @@
|
||||
// CURIOUS_ABOUT serialize, deserialize, write$Self, childSerializers, <init>, <clinit>, getDescriptor
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
class User(val firstName: String, val lastName: String)
|
||||
|
||||
@Serializable
|
||||
class OptionalUser(val user: User = User("", ""))
|
||||
|
||||
@Serializable
|
||||
class ListOfUsers(val list: List<User>)
|
||||
@@ -0,0 +1,969 @@
|
||||
public final class ListOfUsers$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
|
||||
private final static kotlinx.serialization.descriptors.SerialDescriptor $$serialDesc
|
||||
|
||||
public final static ListOfUsers$$serializer INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
NEW (ListOfUsers$$serializer)
|
||||
DUP
|
||||
INVOKESPECIAL (ListOfUsers$$serializer, <init>, ()V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (ListOfUsers$$serializer, INSTANCE, LListOfUsers$$serializer;)
|
||||
NEW (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor)
|
||||
DUP
|
||||
LDC (ListOfUsers)
|
||||
GETSTATIC (ListOfUsers$$serializer, INSTANCE, LListOfUsers$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/internal/GeneratedSerializer)
|
||||
LDC (1)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
LDC (list)
|
||||
ICONST_0
|
||||
INVOKEVIRTUAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, addElement, (Ljava/lang/String;Z)V)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (ListOfUsers$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] childSerializers() {
|
||||
LABEL (L0)
|
||||
ICONST_1
|
||||
ANEWARRAY (kotlinx/serialization/KSerializer)
|
||||
DUP
|
||||
ICONST_0
|
||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||
DUP
|
||||
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||
AASTORE
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public ListOfUsers deserialize(kotlinx.serialization.encoding.Decoder decoder) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (decoder)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
GETSTATIC (ListOfUsers$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ASTORE (2)
|
||||
ICONST_0
|
||||
ISTORE (4)
|
||||
ACONST_NULL
|
||||
ASTORE (5)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/Decoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeDecoder;)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSequentially, ()Z)
|
||||
IFEQ (L1)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||
DUP
|
||||
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (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;)
|
||||
CHECKCAST (java/util/List)
|
||||
ASTORE (5)
|
||||
LDC (2147483647)
|
||||
ISTORE (4)
|
||||
GOTO (L2)
|
||||
LABEL (L1)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeElementIndex, (Lkotlinx/serialization/descriptors/SerialDescriptor;)I)
|
||||
ISTORE (3)
|
||||
ILOAD (3)
|
||||
TABLESWITCH
|
||||
-1: L2
|
||||
0: L3
|
||||
default: L4
|
||||
LABEL (L3)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||
DUP
|
||||
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (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;)
|
||||
CHECKCAST (java/util/List)
|
||||
ASTORE (5)
|
||||
ILOAD (4)
|
||||
ICONST_1
|
||||
IOR
|
||||
ISTORE (4)
|
||||
GOTO (L1)
|
||||
LABEL (L2)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
NEW (ListOfUsers)
|
||||
DUP
|
||||
ILOAD (4)
|
||||
ALOAD (5)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (ListOfUsers, <init>, (ILjava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V)
|
||||
ARETURN
|
||||
LABEL (L4)
|
||||
NEW (kotlinx/serialization/UnknownFieldException)
|
||||
DUP
|
||||
ILOAD (3)
|
||||
INVOKESPECIAL (kotlinx/serialization/UnknownFieldException, <init>, (I)V)
|
||||
CHECKCAST (java/lang/Throwable)
|
||||
ATHROW
|
||||
LABEL (L5)
|
||||
}
|
||||
|
||||
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder p0) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
INVOKEVIRTUAL (ListOfUsers$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LListOfUsers;)
|
||||
ARETURN
|
||||
}
|
||||
|
||||
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor() {
|
||||
LABEL (L0)
|
||||
GETSTATIC (ListOfUsers$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, ListOfUsers value) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (encoder)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (value)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
GETSTATIC (ListOfUsers$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ASTORE (3)
|
||||
ALOAD (1)
|
||||
ALOAD (3)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/Encoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeEncoder;)
|
||||
ASTORE (1)
|
||||
ALOAD (2)
|
||||
ALOAD (1)
|
||||
ALOAD (3)
|
||||
INVOKESTATIC (ListOfUsers, write$Self, (LListOfUsers;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
ALOAD (1)
|
||||
ALOAD (3)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder p0, java.lang.Object p1) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
CHECKCAST (ListOfUsers)
|
||||
INVOKEVIRTUAL (ListOfUsers$$serializer, serialize, (Lkotlinx/serialization/encoding/Encoder;LListOfUsers;)V)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
|
||||
}
|
||||
|
||||
public final class ListOfUsers$Companion : java/lang/Object {
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (ListOfUsers$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer()
|
||||
}
|
||||
|
||||
public final class ListOfUsers : java/lang/Object {
|
||||
public final static ListOfUsers$Companion Companion
|
||||
|
||||
private final java.util.List list
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (ListOfUsers$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (ListOfUsers$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (ListOfUsers, Companion, LListOfUsers$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>(java.util.List list) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (list)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
PUTFIELD (ListOfUsers, list, Ljava/util/List;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void <init>(int seen1, java.util.List list, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
ICONST_1
|
||||
DUP
|
||||
ILOAD (1)
|
||||
IAND
|
||||
IF_ICMPEQ (L1)
|
||||
ILOAD (1)
|
||||
ICONST_1
|
||||
GETSTATIC (ListOfUsers$$serializer, INSTANCE, LListOfUsers$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
INVOKEINTERFACE (kotlinx/serialization/KSerializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
INVOKESTATIC (kotlinx/serialization/internal/PluginExceptionsKt, throwMissingFieldException, (IILkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
LABEL (L1)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
ALOAD (2)
|
||||
PUTFIELD (ListOfUsers, list, Ljava/util/List;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public final java.util.List getList()
|
||||
|
||||
public final static void write$Self(ListOfUsers self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
LDC (self)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
LDC (output)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (serialDesc)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
NEW (kotlinx/serialization/internal/ArrayListSerializer)
|
||||
DUP
|
||||
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
|
||||
ALOAD (0)
|
||||
GETFIELD (ListOfUsers, list, Ljava/util/List;)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
|
||||
private final static kotlinx.serialization.descriptors.SerialDescriptor $$serialDesc
|
||||
|
||||
public final static OptionalUser$$serializer INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (10)
|
||||
NEW (OptionalUser$$serializer)
|
||||
DUP
|
||||
INVOKESPECIAL (OptionalUser$$serializer, <init>, ()V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (OptionalUser$$serializer, INSTANCE, LOptionalUser$$serializer;)
|
||||
NEW (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor)
|
||||
DUP
|
||||
LDC (OptionalUser)
|
||||
GETSTATIC (OptionalUser$$serializer, INSTANCE, LOptionalUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/internal/GeneratedSerializer)
|
||||
LDC (1)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
LDC (user)
|
||||
ICONST_1
|
||||
INVOKEVIRTUAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, addElement, (Ljava/lang/String;Z)V)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (OptionalUser$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (10)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] childSerializers() {
|
||||
LABEL (L0)
|
||||
ICONST_1
|
||||
ANEWARRAY (kotlinx/serialization/KSerializer)
|
||||
DUP
|
||||
ICONST_0
|
||||
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
AASTORE
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public OptionalUser deserialize(kotlinx.serialization.encoding.Decoder decoder) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (decoder)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
GETSTATIC (OptionalUser$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ASTORE (2)
|
||||
ICONST_0
|
||||
ISTORE (4)
|
||||
ACONST_NULL
|
||||
ASTORE (5)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/Decoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeDecoder;)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSequentially, ()Z)
|
||||
IFEQ (L1)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ALOAD (5)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;)
|
||||
CHECKCAST (User)
|
||||
ASTORE (5)
|
||||
LDC (2147483647)
|
||||
ISTORE (4)
|
||||
GOTO (L2)
|
||||
LABEL (L1)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeElementIndex, (Lkotlinx/serialization/descriptors/SerialDescriptor;)I)
|
||||
ISTORE (3)
|
||||
ILOAD (3)
|
||||
TABLESWITCH
|
||||
-1: L2
|
||||
0: L3
|
||||
default: L4
|
||||
LABEL (L3)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ALOAD (5)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;)
|
||||
CHECKCAST (User)
|
||||
ASTORE (5)
|
||||
ILOAD (4)
|
||||
ICONST_1
|
||||
IOR
|
||||
ISTORE (4)
|
||||
GOTO (L1)
|
||||
LABEL (L2)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
NEW (OptionalUser)
|
||||
DUP
|
||||
ILOAD (4)
|
||||
ALOAD (5)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (OptionalUser, <init>, (ILUser;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V)
|
||||
ARETURN
|
||||
LABEL (L4)
|
||||
NEW (kotlinx/serialization/UnknownFieldException)
|
||||
DUP
|
||||
ILOAD (3)
|
||||
INVOKESPECIAL (kotlinx/serialization/UnknownFieldException, <init>, (I)V)
|
||||
CHECKCAST (java/lang/Throwable)
|
||||
ATHROW
|
||||
LABEL (L5)
|
||||
}
|
||||
|
||||
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder p0) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (10)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
INVOKEVIRTUAL (OptionalUser$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LOptionalUser;)
|
||||
ARETURN
|
||||
}
|
||||
|
||||
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor() {
|
||||
LABEL (L0)
|
||||
GETSTATIC (OptionalUser$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, OptionalUser value) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (encoder)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (value)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
GETSTATIC (OptionalUser$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ASTORE (3)
|
||||
ALOAD (1)
|
||||
ALOAD (3)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/Encoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeEncoder;)
|
||||
ASTORE (1)
|
||||
ALOAD (2)
|
||||
ALOAD (1)
|
||||
ALOAD (3)
|
||||
INVOKESTATIC (OptionalUser, write$Self, (LOptionalUser;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
ALOAD (1)
|
||||
ALOAD (3)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder p0, java.lang.Object p1) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (10)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
CHECKCAST (OptionalUser)
|
||||
INVOKEVIRTUAL (OptionalUser$$serializer, serialize, (Lkotlinx/serialization/encoding/Encoder;LOptionalUser;)V)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
|
||||
}
|
||||
|
||||
public final class OptionalUser$Companion : java/lang/Object {
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (10)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (10)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (OptionalUser$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer()
|
||||
}
|
||||
|
||||
public final class OptionalUser : java/lang/Object {
|
||||
public final static OptionalUser$Companion Companion
|
||||
|
||||
private final User user
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (OptionalUser$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (OptionalUser$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (OptionalUser, Companion, LOptionalUser$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>(User user) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (user)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (10)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
PUTFIELD (OptionalUser, user, LUser;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void <init>(User p0, int p1, kotlin.jvm.internal.DefaultConstructorMarker p2) {
|
||||
ILOAD (2)
|
||||
ICONST_1
|
||||
IAND
|
||||
IFEQ (L0)
|
||||
LABEL (L1)
|
||||
LINENUMBER (10)
|
||||
NEW (User)
|
||||
DUP
|
||||
LDC ()
|
||||
LDC ()
|
||||
INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;)V)
|
||||
ASTORE (1)
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
INVOKESPECIAL (OptionalUser, <init>, (LUser;)V)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>() {
|
||||
ALOAD (0)
|
||||
ACONST_NULL
|
||||
ICONST_1
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (OptionalUser, <init>, (LUser;ILkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>(int seen1, User user, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
ICONST_0
|
||||
DUP
|
||||
ILOAD (1)
|
||||
IAND
|
||||
IF_ICMPEQ (L1)
|
||||
ILOAD (1)
|
||||
ICONST_0
|
||||
GETSTATIC (OptionalUser$$serializer, INSTANCE, LOptionalUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
INVOKEINTERFACE (kotlinx/serialization/KSerializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
INVOKESTATIC (kotlinx/serialization/internal/PluginExceptionsKt, throwMissingFieldException, (IILkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
LABEL (L1)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ILOAD (1)
|
||||
ICONST_1
|
||||
IAND
|
||||
IFEQ (L2)
|
||||
ALOAD (0)
|
||||
ALOAD (2)
|
||||
PUTFIELD (OptionalUser, user, LUser;)
|
||||
GOTO (L3)
|
||||
LABEL (L2)
|
||||
ALOAD (0)
|
||||
LABEL (L4)
|
||||
LINENUMBER (10)
|
||||
NEW (User)
|
||||
DUP
|
||||
LDC ()
|
||||
LDC ()
|
||||
INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;)V)
|
||||
PUTFIELD (OptionalUser, user, LUser;)
|
||||
LABEL (L3)
|
||||
RETURN
|
||||
LABEL (L5)
|
||||
}
|
||||
|
||||
public final User getUser()
|
||||
|
||||
public final static void write$Self(OptionalUser self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
LDC (self)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
LDC (output)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (serialDesc)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (0)
|
||||
GETFIELD (OptionalUser, user, LUser;)
|
||||
LABEL (L1)
|
||||
LINENUMBER (10)
|
||||
NEW (User)
|
||||
DUP
|
||||
LDC ()
|
||||
LDC ()
|
||||
INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;)V)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, areEqual, (Ljava/lang/Object;Ljava/lang/Object;)Z)
|
||||
ICONST_1
|
||||
IXOR
|
||||
IFNE (L2)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, shouldEncodeElementDefault, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Z)
|
||||
IFEQ (L3)
|
||||
LABEL (L2)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ALOAD (0)
|
||||
GETFIELD (OptionalUser, user, LUser;)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V)
|
||||
LABEL (L3)
|
||||
RETURN
|
||||
LABEL (L4)
|
||||
}
|
||||
}
|
||||
|
||||
public final class User$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
|
||||
private final static kotlinx.serialization.descriptors.SerialDescriptor $$serialDesc
|
||||
|
||||
public final static User$$serializer INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (7)
|
||||
NEW (User$$serializer)
|
||||
DUP
|
||||
INVOKESPECIAL (User$$serializer, <init>, ()V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
NEW (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor)
|
||||
DUP
|
||||
LDC (User)
|
||||
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/internal/GeneratedSerializer)
|
||||
LDC (2)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
LDC (firstName)
|
||||
ICONST_0
|
||||
INVOKEVIRTUAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, addElement, (Ljava/lang/String;Z)V)
|
||||
ALOAD (0)
|
||||
LDC (lastName)
|
||||
ICONST_0
|
||||
INVOKEVIRTUAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, addElement, (Ljava/lang/String;Z)V)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (User$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (7)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] childSerializers() {
|
||||
LABEL (L0)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlinx/serialization/KSerializer)
|
||||
DUP
|
||||
ICONST_0
|
||||
GETSTATIC (kotlinx/serialization/internal/StringSerializer, INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
AASTORE
|
||||
DUP
|
||||
ICONST_1
|
||||
GETSTATIC (kotlinx/serialization/internal/StringSerializer, INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
AASTORE
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public User deserialize(kotlinx.serialization.encoding.Decoder decoder) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (decoder)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
GETSTATIC (User$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ASTORE (2)
|
||||
ICONST_0
|
||||
ISTORE (4)
|
||||
ACONST_NULL
|
||||
ASTORE (5)
|
||||
ACONST_NULL
|
||||
ASTORE (6)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/Decoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeDecoder;)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSequentially, ()Z)
|
||||
IFEQ (L1)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Ljava/lang/String;)
|
||||
ASTORE (5)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_1
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Ljava/lang/String;)
|
||||
ASTORE (6)
|
||||
LDC (2147483647)
|
||||
ISTORE (4)
|
||||
GOTO (L2)
|
||||
LABEL (L1)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeElementIndex, (Lkotlinx/serialization/descriptors/SerialDescriptor;)I)
|
||||
ISTORE (3)
|
||||
ILOAD (3)
|
||||
TABLESWITCH
|
||||
-1: L2
|
||||
0: L3
|
||||
1: L4
|
||||
default: L5
|
||||
LABEL (L3)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Ljava/lang/String;)
|
||||
ASTORE (5)
|
||||
ILOAD (4)
|
||||
ICONST_1
|
||||
IOR
|
||||
ISTORE (4)
|
||||
GOTO (L1)
|
||||
LABEL (L4)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_1
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Ljava/lang/String;)
|
||||
ASTORE (6)
|
||||
ILOAD (4)
|
||||
ICONST_2
|
||||
IOR
|
||||
ISTORE (4)
|
||||
GOTO (L1)
|
||||
LABEL (L2)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
NEW (User)
|
||||
DUP
|
||||
ILOAD (4)
|
||||
ALOAD (5)
|
||||
ALOAD (6)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (User, <init>, (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V)
|
||||
ARETURN
|
||||
LABEL (L5)
|
||||
NEW (kotlinx/serialization/UnknownFieldException)
|
||||
DUP
|
||||
ILOAD (3)
|
||||
INVOKESPECIAL (kotlinx/serialization/UnknownFieldException, <init>, (I)V)
|
||||
CHECKCAST (java/lang/Throwable)
|
||||
ATHROW
|
||||
LABEL (L6)
|
||||
}
|
||||
|
||||
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder p0) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (7)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
INVOKEVIRTUAL (User$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LUser;)
|
||||
ARETURN
|
||||
}
|
||||
|
||||
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor() {
|
||||
LABEL (L0)
|
||||
GETSTATIC (User$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, User value) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (encoder)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (value)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
GETSTATIC (User$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ASTORE (3)
|
||||
ALOAD (1)
|
||||
ALOAD (3)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/Encoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeEncoder;)
|
||||
ASTORE (1)
|
||||
ALOAD (2)
|
||||
ALOAD (1)
|
||||
ALOAD (3)
|
||||
INVOKESTATIC (User, write$Self, (LUser;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
ALOAD (1)
|
||||
ALOAD (3)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder p0, java.lang.Object p1) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (7)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
CHECKCAST (User)
|
||||
INVOKEVIRTUAL (User$$serializer, serialize, (Lkotlinx/serialization/encoding/Encoder;LUser;)V)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
|
||||
}
|
||||
|
||||
public final class User$Companion : java/lang/Object {
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (7)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (7)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (User$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer()
|
||||
}
|
||||
|
||||
public final class User : java/lang/Object {
|
||||
public final static User$Companion Companion
|
||||
|
||||
private final java.lang.String firstName
|
||||
|
||||
private final java.lang.String lastName
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (User$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (User$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (User, Companion, LUser$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>(java.lang.String firstName, java.lang.String lastName) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (firstName)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (lastName)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (7)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
PUTFIELD (User, firstName, Ljava/lang/String;)
|
||||
ALOAD (0)
|
||||
ALOAD (2)
|
||||
PUTFIELD (User, lastName, Ljava/lang/String;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void <init>(int seen1, java.lang.String firstName, java.lang.String lastName, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
ICONST_3
|
||||
DUP
|
||||
ILOAD (1)
|
||||
IAND
|
||||
IF_ICMPEQ (L1)
|
||||
ILOAD (1)
|
||||
ICONST_3
|
||||
GETSTATIC (User$$serializer, INSTANCE, LUser$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
INVOKEINTERFACE (kotlinx/serialization/KSerializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
INVOKESTATIC (kotlinx/serialization/internal/PluginExceptionsKt, throwMissingFieldException, (IILkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
LABEL (L1)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
ALOAD (2)
|
||||
PUTFIELD (User, firstName, Ljava/lang/String;)
|
||||
ALOAD (0)
|
||||
ALOAD (3)
|
||||
PUTFIELD (User, lastName, Ljava/lang/String;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public final java.lang.String getFirstName()
|
||||
|
||||
public final java.lang.String getLastName()
|
||||
|
||||
public final static void write$Self(User self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
LDC (self)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
LDC (output)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (serialDesc)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
ALOAD (0)
|
||||
GETFIELD (User, firstName, Ljava/lang/String;)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILjava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_1
|
||||
ALOAD (0)
|
||||
GETFIELD (User, lastName, Ljava/lang/String;)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILjava/lang/String;)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
public abstract interface A : java/lang/Object {
|
||||
public abstract java.lang.String getText()
|
||||
}
|
||||
|
||||
public final class DelegatedKt : java/lang/Object {
|
||||
public final static A generateImpl()
|
||||
|
||||
private final static java.lang.String generateImpl$lambda$0()
|
||||
}
|
||||
|
||||
public final class Test$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
|
||||
public final static Test$$serializer INSTANCE
|
||||
|
||||
private final static kotlinx.serialization.internal.PluginGeneratedSerialDescriptor descriptor
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Test$$serializer)
|
||||
DUP
|
||||
INVOKESPECIAL (Test$$serializer, <init>, ()V)
|
||||
PUTSTATIC (Test$$serializer, INSTANCE, LTest$$serializer;)
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
NEW (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor)
|
||||
DUP
|
||||
LDC (Test)
|
||||
GETSTATIC (Test$$serializer, INSTANCE, LTest$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/internal/GeneratedSerializer)
|
||||
ICONST_0
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||
PUTSTATIC (Test$$serializer, descriptor, Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)
|
||||
LABEL (L1)
|
||||
LINENUMBER (13)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] childSerializers()
|
||||
|
||||
public Test deserialize(kotlinx.serialization.encoding.Decoder decoder)
|
||||
|
||||
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder decoder)
|
||||
|
||||
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor()
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, Test value)
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, java.lang.Object value)
|
||||
|
||||
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
|
||||
}
|
||||
|
||||
public final class Test$Companion : java/lang/Object {
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Test$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer()
|
||||
}
|
||||
|
||||
public final class Test : java/lang/Object, A {
|
||||
private final A $$delegate_0
|
||||
|
||||
public final static Test$Companion Companion
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Test$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Test$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (Test, Companion, LTest$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESTATIC (DelegatedKt, generateImpl, ()LA;)
|
||||
PUTFIELD (Test, $$delegate_0, LA;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void <init>(int seen1, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
ICONST_0
|
||||
ILOAD (1)
|
||||
IAND
|
||||
IFEQ (L1)
|
||||
ILOAD (1)
|
||||
ICONST_0
|
||||
GETSTATIC (Test$$serializer, INSTANCE, LTest$$serializer;)
|
||||
INVOKEVIRTUAL (Test$$serializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
INVOKESTATIC (kotlinx/serialization/internal/PluginExceptionsKt, throwMissingFieldException, (IILkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
LABEL (L1)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
LABEL (L2)
|
||||
LINENUMBER (13)
|
||||
INVOKESTATIC (DelegatedKt, generateImpl, ()LA;)
|
||||
LABEL (L3)
|
||||
LINENUMBER (12)
|
||||
PUTFIELD (Test, $$delegate_0, LA;)
|
||||
RETURN
|
||||
LABEL (L4)
|
||||
}
|
||||
|
||||
public java.lang.String getText()
|
||||
|
||||
public final static void write$Self(Test self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc)
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// CURIOUS_ABOUT <init>, <clinit>
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
fun interface A {
|
||||
fun getText(): String
|
||||
}
|
||||
|
||||
fun generateImpl() = A { "Hello, world!" }
|
||||
|
||||
@Serializable
|
||||
class Test : A by generateImpl()
|
||||
@@ -0,0 +1,158 @@
|
||||
public abstract interface A : java/lang/Object {
|
||||
public abstract java.lang.String getText()
|
||||
}
|
||||
|
||||
final class DelegatedKt$generateImpl$1 : java/lang/Object, A {
|
||||
public final static DelegatedKt$generateImpl$1 INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (DelegatedKt$generateImpl$1)
|
||||
DUP
|
||||
INVOKESPECIAL (DelegatedKt$generateImpl$1, <init>, ()V)
|
||||
PUTSTATIC (DelegatedKt$generateImpl$1, INSTANCE, LDelegatedKt$generateImpl$1;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
void <init>() {
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public final java.lang.String getText()
|
||||
}
|
||||
|
||||
public final class DelegatedKt : java/lang/Object {
|
||||
public final static A generateImpl()
|
||||
}
|
||||
|
||||
public final class Test$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
|
||||
private final static kotlinx.serialization.descriptors.SerialDescriptor $$serialDesc
|
||||
|
||||
public final static Test$$serializer INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
NEW (Test$$serializer)
|
||||
DUP
|
||||
INVOKESPECIAL (Test$$serializer, <init>, ()V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (Test$$serializer, INSTANCE, LTest$$serializer;)
|
||||
NEW (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor)
|
||||
DUP
|
||||
LDC (Test)
|
||||
GETSTATIC (Test$$serializer, INSTANCE, LTest$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/internal/GeneratedSerializer)
|
||||
LDC (0)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (Test$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] childSerializers()
|
||||
|
||||
public Test deserialize(kotlinx.serialization.encoding.Decoder decoder)
|
||||
|
||||
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder p0)
|
||||
|
||||
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor()
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, Test value)
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder p0, java.lang.Object p1)
|
||||
|
||||
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
|
||||
}
|
||||
|
||||
public final class Test$Companion : java/lang/Object {
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Test$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer()
|
||||
}
|
||||
|
||||
public final class Test : java/lang/Object, A {
|
||||
private final A $$delegate_0
|
||||
|
||||
public final static Test$Companion Companion
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Test$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Test$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (Test, Companion, LTest$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
LABEL (L1)
|
||||
LINENUMBER (13)
|
||||
INVOKESTATIC (DelegatedKt, generateImpl, ()LA;)
|
||||
PUTFIELD (Test, $$delegate_0, LA;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void <init>(int seen1, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
ICONST_0
|
||||
DUP
|
||||
ILOAD (1)
|
||||
IAND
|
||||
IF_ICMPEQ (L1)
|
||||
ILOAD (1)
|
||||
ICONST_0
|
||||
GETSTATIC (Test$$serializer, INSTANCE, LTest$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
INVOKEINTERFACE (kotlinx/serialization/KSerializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
INVOKESTATIC (kotlinx/serialization/internal/PluginExceptionsKt, throwMissingFieldException, (IILkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
LABEL (L1)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
LABEL (L2)
|
||||
LINENUMBER (13)
|
||||
INVOKESTATIC (DelegatedKt, generateImpl, ()LA;)
|
||||
PUTFIELD (Test, $$delegate_0, LA;)
|
||||
RETURN
|
||||
LABEL (L3)
|
||||
}
|
||||
|
||||
public java.lang.String getText()
|
||||
|
||||
public final static void write$Self(Test self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc)
|
||||
}
|
||||
@@ -0,0 +1,900 @@
|
||||
public final class Container$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
|
||||
public final static Container$$serializer INSTANCE
|
||||
|
||||
private final static kotlinx.serialization.internal.PluginGeneratedSerialDescriptor descriptor
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Container$$serializer)
|
||||
DUP
|
||||
INVOKESPECIAL (Container$$serializer, <init>, ()V)
|
||||
PUTSTATIC (Container$$serializer, INSTANCE, LContainer$$serializer;)
|
||||
LABEL (L0)
|
||||
LINENUMBER (18)
|
||||
NEW (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor)
|
||||
DUP
|
||||
LDC (Container)
|
||||
GETSTATIC (Container$$serializer, INSTANCE, LContainer$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/internal/GeneratedSerializer)
|
||||
ICONST_1
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
LDC (r)
|
||||
ICONST_0
|
||||
INVOKEVIRTUAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, addElement, (Ljava/lang/String;Z)V)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (Container$$serializer, descriptor, Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)
|
||||
LABEL (L1)
|
||||
LINENUMBER (19)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (18)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] childSerializers() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (18)
|
||||
ICONST_1
|
||||
ANEWARRAY (kotlinx/serialization/KSerializer)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
ICONST_0
|
||||
GETSTATIC (Result, Companion, LResult$Companion;)
|
||||
INVOKEVIRTUAL (Result$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||
AASTORE
|
||||
ALOAD (1)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public Container deserialize(kotlinx.serialization.encoding.Decoder decoder) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (decoder)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (18)
|
||||
ALOAD (0)
|
||||
INVOKEVIRTUAL (Container$$serializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ASTORE (2)
|
||||
ICONST_1
|
||||
ISTORE (3)
|
||||
ICONST_0
|
||||
ISTORE (5)
|
||||
ACONST_NULL
|
||||
ASTORE (6)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/Decoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeDecoder;)
|
||||
ASTORE (7)
|
||||
ALOAD (7)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSequentially, ()Z)
|
||||
IFEQ (L2)
|
||||
ALOAD (7)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
GETSTATIC (Result, Companion, LResult$Companion;)
|
||||
INVOKEVIRTUAL (Result$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||
CHECKCAST (kotlinx/serialization/DeserializationStrategy)
|
||||
ALOAD (6)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;)
|
||||
ASTORE (6)
|
||||
ILOAD (5)
|
||||
ICONST_1
|
||||
IOR
|
||||
ISTORE (5)
|
||||
GOTO (L3)
|
||||
LABEL (L2)
|
||||
ILOAD (3)
|
||||
IFEQ (L3)
|
||||
ALOAD (7)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeElementIndex, (Lkotlinx/serialization/descriptors/SerialDescriptor;)I)
|
||||
ISTORE (4)
|
||||
ILOAD (4)
|
||||
TABLESWITCH
|
||||
-1: L4
|
||||
0: L5
|
||||
default: L6
|
||||
LABEL (L4)
|
||||
ICONST_0
|
||||
ISTORE (3)
|
||||
GOTO (L2)
|
||||
LABEL (L5)
|
||||
ALOAD (7)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
GETSTATIC (Result, Companion, LResult$Companion;)
|
||||
INVOKEVIRTUAL (Result$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||
CHECKCAST (kotlinx/serialization/DeserializationStrategy)
|
||||
ALOAD (6)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;)
|
||||
ASTORE (6)
|
||||
ILOAD (5)
|
||||
ICONST_1
|
||||
IOR
|
||||
ISTORE (5)
|
||||
GOTO (L2)
|
||||
LABEL (L6)
|
||||
NEW (kotlinx/serialization/UnknownFieldException)
|
||||
DUP
|
||||
ILOAD (4)
|
||||
INVOKESPECIAL (kotlinx/serialization/UnknownFieldException, <init>, (I)V)
|
||||
ATHROW
|
||||
LABEL (L3)
|
||||
ALOAD (7)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
NEW (Container)
|
||||
DUP
|
||||
ILOAD (5)
|
||||
ALOAD (6)
|
||||
CHECKCAST (Result)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Container, <init>, (ILResult;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V)
|
||||
ARETURN
|
||||
LABEL (L7)
|
||||
}
|
||||
|
||||
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder decoder) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (18)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
INVOKEVIRTUAL (Container$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LContainer;)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor()
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, Container value)
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, java.lang.Object value)
|
||||
|
||||
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
|
||||
}
|
||||
|
||||
public final class Container$Companion : java/lang/Object {
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (18)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Container$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (18)
|
||||
GETSTATIC (Container$$serializer, INSTANCE, LContainer$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class Container : java/lang/Object {
|
||||
public final static Container$Companion Companion
|
||||
|
||||
private final Result r
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Container$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Container$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (Container, Companion, LContainer$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>(Result r) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (r)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (18)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
LABEL (L2)
|
||||
LINENUMBER (19)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
PUTFIELD (Container, r, LResult;)
|
||||
RETURN
|
||||
LABEL (L3)
|
||||
}
|
||||
|
||||
public void <init>(int seen1, Result r, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (18)
|
||||
ICONST_1
|
||||
ICONST_1
|
||||
ILOAD (1)
|
||||
IAND
|
||||
IF_ICMPEQ (L1)
|
||||
ILOAD (1)
|
||||
ICONST_1
|
||||
GETSTATIC (Container$$serializer, INSTANCE, LContainer$$serializer;)
|
||||
INVOKEVIRTUAL (Container$$serializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
INVOKESTATIC (kotlinx/serialization/internal/PluginExceptionsKt, throwMissingFieldException, (IILkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
LABEL (L1)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
ALOAD (2)
|
||||
PUTFIELD (Container, r, LResult;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public final Result getR()
|
||||
|
||||
public final static void write$Self(Container self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
LDC (self)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
LDC (output)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (serialDesc)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (18)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
GETSTATIC (Result, Companion, LResult$Companion;)
|
||||
INVOKEVIRTUAL (Result$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
|
||||
CHECKCAST (kotlinx/serialization/SerializationStrategy)
|
||||
ALOAD (0)
|
||||
GETFIELD (Container, r, LResult;)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
}
|
||||
|
||||
final class Result$Companion$$cachedSerializer$delegate$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function0 {
|
||||
public final static Result$Companion$$cachedSerializer$delegate$1 INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Result$Companion$$cachedSerializer$delegate$1)
|
||||
DUP
|
||||
INVOKESPECIAL (Result$Companion$$cachedSerializer$delegate$1, <init>, ()V)
|
||||
PUTSTATIC (Result$Companion$$cachedSerializer$delegate$1, INSTANCE, LResult$Companion$$cachedSerializer$delegate$1;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
void <init>() {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
ICONST_0
|
||||
INVOKESPECIAL (kotlin/jvm/internal/Lambda, <init>, (I)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer invoke() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
NEW (kotlinx/serialization/SealedClassSerializer)
|
||||
DUP
|
||||
LDC (Result)
|
||||
LDC (LResult;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlin/reflect/KClass)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
ICONST_0
|
||||
LDC (LResult$Err;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
AASTORE
|
||||
ALOAD (1)
|
||||
ICONST_1
|
||||
LDC (LResult$OK;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
AASTORE
|
||||
ALOAD (1)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlinx/serialization/KSerializer)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
ICONST_0
|
||||
NEW (kotlinx/serialization/internal/ObjectSerializer)
|
||||
DUP
|
||||
LDC (Result.Err)
|
||||
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
|
||||
ICONST_0
|
||||
ANEWARRAY (java/lang/annotation/Annotation)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/annotation/Annotation;)V)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
AASTORE
|
||||
ALOAD (1)
|
||||
ICONST_1
|
||||
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
AASTORE
|
||||
ALOAD (1)
|
||||
ICONST_0
|
||||
ANEWARRAY (java/lang/annotation/Annotation)
|
||||
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;[Ljava/lang/annotation/Annotation;)V)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public java.lang.Object invoke() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
ALOAD (0)
|
||||
INVOKEVIRTUAL (Result$Companion$$cachedSerializer$delegate$1, invoke, ()Lkotlinx/serialization/KSerializer;)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class Result$Companion : java/lang/Object {
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Result$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
private final kotlin.Lazy get$cachedSerializer$delegate()
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Result$Companion, get$cachedSerializer$delegate, ()Lkotlin/Lazy;)
|
||||
INVOKEINTERFACE (kotlin/Lazy, getValue, ()Ljava/lang/Object;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
final class Result$Err$$cachedSerializer$delegate$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function0 {
|
||||
public final static Result$Err$$cachedSerializer$delegate$1 INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Result$Err$$cachedSerializer$delegate$1)
|
||||
DUP
|
||||
INVOKESPECIAL (Result$Err$$cachedSerializer$delegate$1, <init>, ()V)
|
||||
PUTSTATIC (Result$Err$$cachedSerializer$delegate$1, INSTANCE, LResult$Err$$cachedSerializer$delegate$1;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
void <init>() {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
ICONST_0
|
||||
INVOKESPECIAL (kotlin/jvm/internal/Lambda, <init>, (I)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer invoke() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (15)
|
||||
NEW (kotlinx/serialization/internal/ObjectSerializer)
|
||||
DUP
|
||||
LDC (Result.Err)
|
||||
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
|
||||
ICONST_0
|
||||
ANEWARRAY (java/lang/annotation/Annotation)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/annotation/Annotation;)V)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public java.lang.Object invoke() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (15)
|
||||
ALOAD (0)
|
||||
INVOKEVIRTUAL (Result$Err$$cachedSerializer$delegate$1, invoke, ()Lkotlinx/serialization/KSerializer;)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class Result$Err : Result {
|
||||
private final static kotlin.Lazy $cachedSerializer$delegate
|
||||
|
||||
public final static Result$Err INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Result$Err)
|
||||
DUP
|
||||
INVOKESPECIAL (Result$Err, <init>, ()V)
|
||||
PUTSTATIC (Result$Err, INSTANCE, LResult$Err;)
|
||||
LABEL (L0)
|
||||
LINENUMBER (15)
|
||||
GETSTATIC (kotlin/LazyThreadSafetyMode, PUBLICATION, Lkotlin/LazyThreadSafetyMode;)
|
||||
GETSTATIC (Result$Err$$cachedSerializer$delegate$1, INSTANCE, LResult$Err$$cachedSerializer$delegate$1;)
|
||||
CHECKCAST (kotlin/jvm/functions/Function0)
|
||||
INVOKESTATIC (kotlin/LazyKt, lazy, (Lkotlin/LazyThreadSafetyMode;Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;)
|
||||
PUTSTATIC (Result$Err, $cachedSerializer$delegate, Lkotlin/Lazy;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (15)
|
||||
ALOAD (0)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Result, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
private final kotlin.Lazy get$cachedSerializer$delegate()
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (15)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Result$Err, get$cachedSerializer$delegate, ()Lkotlin/Lazy;)
|
||||
INVOKEINTERFACE (kotlin/Lazy, getValue, ()Ljava/lang/Object;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class Result$OK$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
|
||||
public final static Result$OK$$serializer INSTANCE
|
||||
|
||||
private final static kotlinx.serialization.internal.PluginGeneratedSerialDescriptor descriptor
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Result$OK$$serializer)
|
||||
DUP
|
||||
INVOKESPECIAL (Result$OK$$serializer, <init>, ()V)
|
||||
PUTSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
NEW (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor)
|
||||
DUP
|
||||
LDC (Result.OK)
|
||||
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/internal/GeneratedSerializer)
|
||||
ICONST_1
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
LDC (s)
|
||||
ICONST_0
|
||||
INVOKEVIRTUAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, addElement, (Ljava/lang/String;Z)V)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (Result$OK$$serializer, descriptor, Lkotlinx/serialization/internal/PluginGeneratedSerialDescriptor;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] childSerializers() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
ICONST_1
|
||||
ANEWARRAY (kotlinx/serialization/KSerializer)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
ICONST_0
|
||||
GETSTATIC (kotlinx/serialization/internal/StringSerializer, INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
AASTORE
|
||||
ALOAD (1)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public Result$OK deserialize(kotlinx.serialization.encoding.Decoder decoder) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (decoder)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
INVOKEVIRTUAL (Result$OK$$serializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ASTORE (2)
|
||||
ICONST_1
|
||||
ISTORE (3)
|
||||
ICONST_0
|
||||
ISTORE (5)
|
||||
ACONST_NULL
|
||||
ASTORE (6)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/Decoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeDecoder;)
|
||||
ASTORE (7)
|
||||
ALOAD (7)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSequentially, ()Z)
|
||||
IFEQ (L2)
|
||||
ALOAD (7)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Ljava/lang/String;)
|
||||
ASTORE (6)
|
||||
ILOAD (5)
|
||||
ICONST_1
|
||||
IOR
|
||||
ISTORE (5)
|
||||
GOTO (L3)
|
||||
LABEL (L2)
|
||||
ILOAD (3)
|
||||
IFEQ (L3)
|
||||
ALOAD (7)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeElementIndex, (Lkotlinx/serialization/descriptors/SerialDescriptor;)I)
|
||||
ISTORE (4)
|
||||
ILOAD (4)
|
||||
TABLESWITCH
|
||||
-1: L4
|
||||
0: L5
|
||||
default: L6
|
||||
LABEL (L4)
|
||||
ICONST_0
|
||||
ISTORE (3)
|
||||
GOTO (L2)
|
||||
LABEL (L5)
|
||||
ALOAD (7)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Ljava/lang/String;)
|
||||
ASTORE (6)
|
||||
ILOAD (5)
|
||||
ICONST_1
|
||||
IOR
|
||||
ISTORE (5)
|
||||
GOTO (L2)
|
||||
LABEL (L6)
|
||||
NEW (kotlinx/serialization/UnknownFieldException)
|
||||
DUP
|
||||
ILOAD (4)
|
||||
INVOKESPECIAL (kotlinx/serialization/UnknownFieldException, <init>, (I)V)
|
||||
ATHROW
|
||||
LABEL (L3)
|
||||
ALOAD (7)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
NEW (Result$OK)
|
||||
DUP
|
||||
ILOAD (5)
|
||||
ALOAD (6)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Result$OK, <init>, (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V)
|
||||
ARETURN
|
||||
LABEL (L7)
|
||||
}
|
||||
|
||||
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder decoder) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
INVOKEVIRTUAL (Result$OK$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LResult$OK;)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor()
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, Result$OK value)
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, java.lang.Object value)
|
||||
|
||||
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
|
||||
}
|
||||
|
||||
public final class Result$OK$Companion : java/lang/Object {
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Result$OK$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class Result$OK : Result {
|
||||
public final static Result$OK$Companion Companion
|
||||
|
||||
private final java.lang.String s
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Result$OK$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Result$OK$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (Result$OK, Companion, LResult$OK$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>(java.lang.String s) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (s)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Result, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
PUTFIELD (Result$OK, s, Ljava/lang/String;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void <init>(int seen1, java.lang.String s, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
ICONST_1
|
||||
ICONST_1
|
||||
ILOAD (1)
|
||||
IAND
|
||||
IF_ICMPEQ (L1)
|
||||
ILOAD (1)
|
||||
ICONST_1
|
||||
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
|
||||
INVOKEVIRTUAL (Result$OK$$serializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
INVOKESTATIC (kotlinx/serialization/internal/PluginExceptionsKt, throwMissingFieldException, (IILkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
LABEL (L1)
|
||||
ALOAD (0)
|
||||
ILOAD (1)
|
||||
ALOAD (3)
|
||||
INVOKESPECIAL (Result, <init>, (ILkotlinx/serialization/internal/SerializationConstructorMarker;)V)
|
||||
ALOAD (0)
|
||||
ALOAD (2)
|
||||
PUTFIELD (Result$OK, s, Ljava/lang/String;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public final java.lang.String getS()
|
||||
|
||||
public final static void write$Self(Result$OK self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
LDC (self)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
LDC (output)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (serialDesc)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
CHECKCAST (Result)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKESTATIC (Result, write$Self, (LResult;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
ALOAD (0)
|
||||
GETFIELD (Result$OK, s, Ljava/lang/String;)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILjava/lang/String;)V)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class Result : java/lang/Object, X {
|
||||
private final static kotlin.Lazy $cachedSerializer$delegate
|
||||
|
||||
public final static Result$Companion Companion
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Result$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Result$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (Result, Companion, LResult$Companion;)
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
GETSTATIC (kotlin/LazyThreadSafetyMode, PUBLICATION, Lkotlin/LazyThreadSafetyMode;)
|
||||
GETSTATIC (Result$Companion$$cachedSerializer$delegate$1, INSTANCE, LResult$Companion$$cachedSerializer$delegate$1;)
|
||||
CHECKCAST (kotlin/jvm/functions/Function0)
|
||||
INVOKESTATIC (kotlin/LazyKt, lazy, (Lkotlin/LazyThreadSafetyMode;Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;)
|
||||
PUTSTATIC (Result, $cachedSerializer$delegate, Lkotlin/Lazy;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (13)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void <init>(int seen1, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (12)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Result, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final static kotlin.Lazy access$get$cachedSerializer$delegate$cp()
|
||||
|
||||
public void def()
|
||||
|
||||
public final static void write$Self(Result self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
LDC (self)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
LDC (output)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (serialDesc)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class X$Companion : java/lang/Object {
|
||||
final static X$Companion $$INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (X$Companion)
|
||||
DUP
|
||||
INVOKESPECIAL (X$Companion, <init>, ()V)
|
||||
PUTSTATIC (X$Companion, $$INSTANCE, LX$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (6)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (6)
|
||||
NEW (kotlinx/serialization/SealedClassSerializer)
|
||||
DUP
|
||||
LDC (X)
|
||||
LDC (LX;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlin/reflect/KClass)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
ICONST_0
|
||||
LDC (LResult$Err;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
AASTORE
|
||||
ALOAD (1)
|
||||
ICONST_1
|
||||
LDC (LResult$OK;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
AASTORE
|
||||
ALOAD (1)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlinx/serialization/KSerializer)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
ICONST_0
|
||||
NEW (kotlinx/serialization/internal/ObjectSerializer)
|
||||
DUP
|
||||
LDC (Result.Err)
|
||||
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
|
||||
ICONST_0
|
||||
ANEWARRAY (java/lang/annotation/Annotation)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/annotation/Annotation;)V)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
AASTORE
|
||||
ALOAD (1)
|
||||
ICONST_1
|
||||
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
AASTORE
|
||||
ALOAD (1)
|
||||
ICONST_0
|
||||
ANEWARRAY (java/lang/annotation/Annotation)
|
||||
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;[Ljava/lang/annotation/Annotation;)V)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class X$DefaultImpls : java/lang/Object {
|
||||
public static void def(X $this)
|
||||
}
|
||||
|
||||
public abstract interface X : java/lang/Object {
|
||||
public final static X$Companion Companion
|
||||
|
||||
static void <clinit>() {
|
||||
GETSTATIC (X$Companion, $$INSTANCE, LX$Companion;)
|
||||
PUTSTATIC (X, Companion, LX$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public abstract void def()
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
// CURIOUS_ABOUT deserialize, write$Self, childSerializers, <init>, <clinit>, invoke, serializer
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
sealed interface X {
|
||||
fun def() {}
|
||||
}
|
||||
|
||||
// do not forget to update this test with custom serialinfo annotation when serialization 1.3.0 is released
|
||||
@Serializable
|
||||
sealed class Result: X {
|
||||
@Serializable class OK(val s: String): Result()
|
||||
@Serializable object Err: Result()
|
||||
}
|
||||
|
||||
@Serializable
|
||||
class Container(val r: Result)
|
||||
@@ -0,0 +1,956 @@
|
||||
public final class Container$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
|
||||
private final static kotlinx.serialization.descriptors.SerialDescriptor $$serialDesc
|
||||
|
||||
public final static Container$$serializer INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (19)
|
||||
NEW (Container$$serializer)
|
||||
DUP
|
||||
INVOKESPECIAL (Container$$serializer, <init>, ()V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (Container$$serializer, INSTANCE, LContainer$$serializer;)
|
||||
NEW (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor)
|
||||
DUP
|
||||
LDC (Container)
|
||||
GETSTATIC (Container$$serializer, INSTANCE, LContainer$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/internal/GeneratedSerializer)
|
||||
LDC (1)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
LDC (r)
|
||||
ICONST_0
|
||||
INVOKEVIRTUAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, addElement, (Ljava/lang/String;Z)V)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (Container$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (19)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] childSerializers() {
|
||||
LABEL (L0)
|
||||
ICONST_1
|
||||
ANEWARRAY (kotlinx/serialization/KSerializer)
|
||||
DUP
|
||||
ICONST_0
|
||||
NEW (kotlinx/serialization/SealedClassSerializer)
|
||||
DUP
|
||||
LDC (Result)
|
||||
LDC (LResult;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlin/reflect/KClass)
|
||||
DUP
|
||||
ICONST_0
|
||||
LDC (LResult$Err;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
AASTORE
|
||||
DUP
|
||||
ICONST_1
|
||||
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
|
||||
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
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public Container deserialize(kotlinx.serialization.encoding.Decoder decoder) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (decoder)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
GETSTATIC (Container$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ASTORE (2)
|
||||
ICONST_0
|
||||
ISTORE (4)
|
||||
ACONST_NULL
|
||||
ASTORE (5)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/Decoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeDecoder;)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSequentially, ()Z)
|
||||
IFEQ (L1)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
NEW (kotlinx/serialization/SealedClassSerializer)
|
||||
DUP
|
||||
LDC (Result)
|
||||
LDC (LResult;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlin/reflect/KClass)
|
||||
DUP
|
||||
ICONST_0
|
||||
LDC (LResult$Err;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
AASTORE
|
||||
DUP
|
||||
ICONST_1
|
||||
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
|
||||
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;)
|
||||
CHECKCAST (Result)
|
||||
ASTORE (5)
|
||||
LDC (2147483647)
|
||||
ISTORE (4)
|
||||
GOTO (L2)
|
||||
LABEL (L1)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeElementIndex, (Lkotlinx/serialization/descriptors/SerialDescriptor;)I)
|
||||
ISTORE (3)
|
||||
ILOAD (3)
|
||||
TABLESWITCH
|
||||
-1: L2
|
||||
0: L3
|
||||
default: L4
|
||||
LABEL (L3)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
NEW (kotlinx/serialization/SealedClassSerializer)
|
||||
DUP
|
||||
LDC (Result)
|
||||
LDC (LResult;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlin/reflect/KClass)
|
||||
DUP
|
||||
ICONST_0
|
||||
LDC (LResult$Err;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
AASTORE
|
||||
DUP
|
||||
ICONST_1
|
||||
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
|
||||
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;)
|
||||
CHECKCAST (Result)
|
||||
ASTORE (5)
|
||||
ILOAD (4)
|
||||
ICONST_1
|
||||
IOR
|
||||
ISTORE (4)
|
||||
GOTO (L1)
|
||||
LABEL (L2)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
NEW (Container)
|
||||
DUP
|
||||
ILOAD (4)
|
||||
ALOAD (5)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Container, <init>, (ILResult;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V)
|
||||
ARETURN
|
||||
LABEL (L4)
|
||||
NEW (kotlinx/serialization/UnknownFieldException)
|
||||
DUP
|
||||
ILOAD (3)
|
||||
INVOKESPECIAL (kotlinx/serialization/UnknownFieldException, <init>, (I)V)
|
||||
CHECKCAST (java/lang/Throwable)
|
||||
ATHROW
|
||||
LABEL (L5)
|
||||
}
|
||||
|
||||
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder p0) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (19)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
INVOKEVIRTUAL (Container$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LContainer;)
|
||||
ARETURN
|
||||
}
|
||||
|
||||
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor()
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, Container value)
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder p0, java.lang.Object p1)
|
||||
|
||||
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
|
||||
}
|
||||
|
||||
public final class Container$Companion : java/lang/Object {
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (19)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (19)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Container$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer() {
|
||||
LABEL (L0)
|
||||
GETSTATIC (Container$$serializer, INSTANCE, LContainer$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class Container : java/lang/Object {
|
||||
public final static Container$Companion Companion
|
||||
|
||||
private final Result r
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Container$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Container$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (Container, Companion, LContainer$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>(Result r) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (r)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (19)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
PUTFIELD (Container, r, LResult;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void <init>(int seen1, Result r, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
ICONST_1
|
||||
DUP
|
||||
ILOAD (1)
|
||||
IAND
|
||||
IF_ICMPEQ (L1)
|
||||
ILOAD (1)
|
||||
ICONST_1
|
||||
GETSTATIC (Container$$serializer, INSTANCE, LContainer$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
INVOKEINTERFACE (kotlinx/serialization/KSerializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
INVOKESTATIC (kotlinx/serialization/internal/PluginExceptionsKt, throwMissingFieldException, (IILkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
LABEL (L1)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
ALOAD (0)
|
||||
ALOAD (2)
|
||||
PUTFIELD (Container, r, LResult;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public final Result getR()
|
||||
|
||||
public final static void write$Self(Container self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
LDC (self)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
LDC (output)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (serialDesc)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
NEW (kotlinx/serialization/SealedClassSerializer)
|
||||
DUP
|
||||
LDC (Result)
|
||||
LDC (LResult;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlin/reflect/KClass)
|
||||
DUP
|
||||
ICONST_0
|
||||
LDC (LResult$Err;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
AASTORE
|
||||
DUP
|
||||
ICONST_1
|
||||
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
|
||||
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;)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
final class Result$Companion$serializer$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function0 {
|
||||
public final static Result$Companion$serializer$1 INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Result$Companion$serializer$1)
|
||||
DUP
|
||||
INVOKESPECIAL (Result$Companion$serializer$1, <init>, ()V)
|
||||
PUTSTATIC (Result$Companion$serializer$1, INSTANCE, LResult$Companion$serializer$1;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>() {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
ICONST_0
|
||||
INVOKESPECIAL (kotlin/jvm/internal/Lambda, <init>, (I)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer invoke() {
|
||||
LABEL (L0)
|
||||
NEW (kotlinx/serialization/SealedClassSerializer)
|
||||
DUP
|
||||
LDC (Result)
|
||||
LDC (LResult;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlin/reflect/KClass)
|
||||
DUP
|
||||
ICONST_0
|
||||
LDC (LResult$Err;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
AASTORE
|
||||
DUP
|
||||
ICONST_1
|
||||
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
|
||||
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)
|
||||
}
|
||||
|
||||
public final java.lang.Object invoke() {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
INVOKEVIRTUAL (Result$Companion$serializer$1, invoke, ()Lkotlinx/serialization/KSerializer;)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class Result$Companion : java/lang/Object {
|
||||
private final static kotlin.Lazy $cachedSerializer$delegate
|
||||
|
||||
static void <clinit>() {
|
||||
GETSTATIC (kotlin/LazyThreadSafetyMode, PUBLICATION, Lkotlin/LazyThreadSafetyMode;)
|
||||
GETSTATIC (Result$Companion$serializer$1, INSTANCE, LResult$Companion$serializer$1;)
|
||||
CHECKCAST (kotlin/jvm/functions/Function0)
|
||||
INVOKESTATIC (kotlin/LazyKt, lazy, (Lkotlin/LazyThreadSafetyMode;Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;)
|
||||
PUTSTATIC (Result$Companion, $cachedSerializer$delegate, Lkotlin/Lazy;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Result$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer() {
|
||||
LABEL (L0)
|
||||
GETSTATIC (Result$Companion, $cachedSerializer$delegate, Lkotlin/Lazy;)
|
||||
INVOKEINTERFACE (kotlin/Lazy, getValue, ()Ljava/lang/Object;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
final class Result$Err$serializer$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function0 {
|
||||
public final static Result$Err$serializer$1 INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Result$Err$serializer$1)
|
||||
DUP
|
||||
INVOKESPECIAL (Result$Err$serializer$1, <init>, ()V)
|
||||
PUTSTATIC (Result$Err$serializer$1, INSTANCE, LResult$Err$serializer$1;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>() {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
ICONST_0
|
||||
INVOKESPECIAL (kotlin/jvm/internal/Lambda, <init>, (I)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer invoke() {
|
||||
LABEL (L0)
|
||||
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)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final java.lang.Object invoke() {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
INVOKEVIRTUAL (Result$Err$serializer$1, invoke, ()Lkotlinx/serialization/KSerializer;)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class Result$Err : Result {
|
||||
private final static kotlin.Lazy $cachedSerializer$delegate
|
||||
|
||||
public final static Result$Err INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (15)
|
||||
NEW (Result$Err)
|
||||
DUP
|
||||
INVOKESPECIAL (Result$Err, <init>, ()V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (Result$Err, INSTANCE, LResult$Err;)
|
||||
GETSTATIC (kotlin/LazyThreadSafetyMode, PUBLICATION, Lkotlin/LazyThreadSafetyMode;)
|
||||
GETSTATIC (Result$Err$serializer$1, INSTANCE, LResult$Err$serializer$1;)
|
||||
CHECKCAST (kotlin/jvm/functions/Function0)
|
||||
INVOKESTATIC (kotlin/LazyKt, lazy, (Lkotlin/LazyThreadSafetyMode;Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;)
|
||||
PUTSTATIC (Result$Err, $cachedSerializer$delegate, Lkotlin/Lazy;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (15)
|
||||
ALOAD (0)
|
||||
ACONST_NULL
|
||||
LABEL (L1)
|
||||
LINENUMBER (15)
|
||||
INVOKESPECIAL (Result, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer() {
|
||||
LABEL (L0)
|
||||
GETSTATIC (Result$Err, $cachedSerializer$delegate, Lkotlin/Lazy;)
|
||||
INVOKEINTERFACE (kotlin/Lazy, getValue, ()Ljava/lang/Object;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class Result$OK$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
|
||||
private final static kotlinx.serialization.descriptors.SerialDescriptor $$serialDesc
|
||||
|
||||
public final static Result$OK$$serializer INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
NEW (Result$OK$$serializer)
|
||||
DUP
|
||||
INVOKESPECIAL (Result$OK$$serializer, <init>, ()V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
|
||||
NEW (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor)
|
||||
DUP
|
||||
LDC (Result.OK)
|
||||
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/internal/GeneratedSerializer)
|
||||
LDC (1)
|
||||
INVOKESPECIAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
LDC (s)
|
||||
ICONST_0
|
||||
INVOKEVIRTUAL (kotlinx/serialization/internal/PluginGeneratedSerialDescriptor, addElement, (Ljava/lang/String;Z)V)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (Result$OK$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public kotlinx.serialization.KSerializer[] childSerializers() {
|
||||
LABEL (L0)
|
||||
ICONST_1
|
||||
ANEWARRAY (kotlinx/serialization/KSerializer)
|
||||
DUP
|
||||
ICONST_0
|
||||
GETSTATIC (kotlinx/serialization/internal/StringSerializer, INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
AASTORE
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public Result$OK deserialize(kotlinx.serialization.encoding.Decoder decoder) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (decoder)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
GETSTATIC (Result$OK$$serializer, $$serialDesc, Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
ASTORE (2)
|
||||
ICONST_0
|
||||
ISTORE (4)
|
||||
ACONST_NULL
|
||||
ASTORE (5)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/Decoder, beginStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/CompositeDecoder;)
|
||||
ASTORE (1)
|
||||
ALOAD (1)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeSequentially, ()Z)
|
||||
IFEQ (L1)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Ljava/lang/String;)
|
||||
ASTORE (5)
|
||||
LDC (2147483647)
|
||||
ISTORE (4)
|
||||
GOTO (L2)
|
||||
LABEL (L1)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeElementIndex, (Lkotlinx/serialization/descriptors/SerialDescriptor;)I)
|
||||
ISTORE (3)
|
||||
ILOAD (3)
|
||||
TABLESWITCH
|
||||
-1: L2
|
||||
0: L3
|
||||
default: L4
|
||||
LABEL (L3)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, decodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Ljava/lang/String;)
|
||||
ASTORE (5)
|
||||
ILOAD (4)
|
||||
ICONST_1
|
||||
IOR
|
||||
ISTORE (4)
|
||||
GOTO (L1)
|
||||
LABEL (L2)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeDecoder, endStructure, (Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
NEW (Result$OK)
|
||||
DUP
|
||||
ILOAD (4)
|
||||
ALOAD (5)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Result$OK, <init>, (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V)
|
||||
ARETURN
|
||||
LABEL (L4)
|
||||
NEW (kotlinx/serialization/UnknownFieldException)
|
||||
DUP
|
||||
ILOAD (3)
|
||||
INVOKESPECIAL (kotlinx/serialization/UnknownFieldException, <init>, (I)V)
|
||||
CHECKCAST (java/lang/Throwable)
|
||||
ATHROW
|
||||
LABEL (L5)
|
||||
}
|
||||
|
||||
public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder p0) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
INVOKEVIRTUAL (Result$OK$$serializer, deserialize, (Lkotlinx/serialization/encoding/Decoder;)LResult$OK;)
|
||||
ARETURN
|
||||
}
|
||||
|
||||
public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor()
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder encoder, Result$OK value)
|
||||
|
||||
public void serialize(kotlinx.serialization.encoding.Encoder p0, java.lang.Object p1)
|
||||
|
||||
public kotlinx.serialization.KSerializer[] typeParametersSerializers()
|
||||
}
|
||||
|
||||
public final class Result$OK$Companion : java/lang/Object {
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Result$OK$Companion, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer() {
|
||||
LABEL (L0)
|
||||
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
ARETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class Result$OK : Result {
|
||||
public final static Result$OK$Companion Companion
|
||||
|
||||
private final java.lang.String s
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Result$OK$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Result$OK$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (Result$OK, Companion, LResult$OK$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public void <init>(java.lang.String s) {
|
||||
LABEL (L0)
|
||||
ALOAD (1)
|
||||
LDC (s)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
LABEL (L1)
|
||||
LINENUMBER (14)
|
||||
ALOAD (0)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Result, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
PUTFIELD (Result$OK, s, Ljava/lang/String;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public void <init>(int seen1, java.lang.String s, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
ICONST_1
|
||||
DUP
|
||||
ILOAD (1)
|
||||
IAND
|
||||
IF_ICMPEQ (L1)
|
||||
ILOAD (1)
|
||||
ICONST_1
|
||||
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
|
||||
CHECKCAST (kotlinx/serialization/KSerializer)
|
||||
INVOKEINTERFACE (kotlinx/serialization/KSerializer, getDescriptor, ()Lkotlinx/serialization/descriptors/SerialDescriptor;)
|
||||
INVOKESTATIC (kotlinx/serialization/internal/PluginExceptionsKt, throwMissingFieldException, (IILkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
LABEL (L1)
|
||||
ALOAD (0)
|
||||
ILOAD (1)
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Result, <init>, (ILkotlinx/serialization/internal/SerializationConstructorMarker;)V)
|
||||
ALOAD (0)
|
||||
ALOAD (2)
|
||||
PUTFIELD (Result$OK, s, Ljava/lang/String;)
|
||||
RETURN
|
||||
LABEL (L2)
|
||||
}
|
||||
|
||||
public final java.lang.String getS()
|
||||
|
||||
public final static void write$Self(Result$OK self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
LDC (self)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
LDC (output)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (serialDesc)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (0)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
INVOKESTATIC (Result, write$Self, (LResult;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V)
|
||||
ALOAD (1)
|
||||
ALOAD (2)
|
||||
ICONST_0
|
||||
ALOAD (0)
|
||||
GETFIELD (Result$OK, s, Ljava/lang/String;)
|
||||
INVOKEINTERFACE (kotlinx/serialization/encoding/CompositeEncoder, encodeStringElement, (Lkotlinx/serialization/descriptors/SerialDescriptor;ILjava/lang/String;)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class Result : java/lang/Object, X {
|
||||
public final static Result$Companion Companion
|
||||
|
||||
static void <clinit>() {
|
||||
NEW (Result$Companion)
|
||||
DUP
|
||||
ACONST_NULL
|
||||
INVOKESPECIAL (Result$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
|
||||
PUTSTATIC (Result, Companion, LResult$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
|
||||
LABEL (L0)
|
||||
LINENUMBER (13)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (Result, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void <init>(int seen1, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public void def()
|
||||
|
||||
public final static void write$Self(Result self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc) {
|
||||
LABEL (L0)
|
||||
ALOAD (0)
|
||||
LDC (self)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (1)
|
||||
LDC (output)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
ALOAD (2)
|
||||
LDC (serialDesc)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
}
|
||||
|
||||
public final class X$Companion : java/lang/Object {
|
||||
final static X$Companion $$INSTANCE
|
||||
|
||||
static void <clinit>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (7)
|
||||
NEW (X$Companion)
|
||||
DUP
|
||||
INVOKESPECIAL (X$Companion, <init>, ()V)
|
||||
ASTORE (0)
|
||||
ALOAD (0)
|
||||
PUTSTATIC (X$Companion, $$INSTANCE, LX$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
private void <init>() {
|
||||
LABEL (L0)
|
||||
LINENUMBER (7)
|
||||
ALOAD (0)
|
||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||
RETURN
|
||||
LABEL (L1)
|
||||
}
|
||||
|
||||
public final kotlinx.serialization.KSerializer serializer() {
|
||||
LABEL (L0)
|
||||
NEW (kotlinx/serialization/SealedClassSerializer)
|
||||
DUP
|
||||
LDC (X)
|
||||
LDC (LX;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
ICONST_2
|
||||
ANEWARRAY (kotlin/reflect/KClass)
|
||||
DUP
|
||||
ICONST_0
|
||||
LDC (LResult$Err;)
|
||||
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
|
||||
AASTORE
|
||||
DUP
|
||||
ICONST_1
|
||||
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
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
public final class X$DefaultImpls : java/lang/Object {
|
||||
public static void def(X $this)
|
||||
}
|
||||
|
||||
public abstract interface X : java/lang/Object {
|
||||
public final static X$Companion Companion
|
||||
|
||||
static void <clinit>() {
|
||||
GETSTATIC (X$Companion, $$INSTANCE, LX$Companion;)
|
||||
PUTSTATIC (X, Companion, LX$Companion;)
|
||||
RETURN
|
||||
}
|
||||
|
||||
public abstract void def()
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
open class Parent(open val arg: Int)
|
||||
|
||||
<!DUPLICATE_SERIAL_NAME("arg")!>@Serializable<!>
|
||||
class Derived(override val arg: Int): Parent(arg)
|
||||
@@ -0,0 +1,62 @@
|
||||
package
|
||||
|
||||
@kotlinx.serialization.Serializable public final class Derived : Parent {
|
||||
public constructor Derived(/*0*/ arg: kotlin.Int)
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor Derived(/*0*/ seen1: kotlin.Int, /*1*/ arg: kotlin.Int, /*2*/ arg: kotlin.Int, /*3*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
public open override /*1*/ val arg: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@kotlin.jvm.JvmStatic public final /*synthesized*/ fun `write$Self`(/*0*/ self: Derived, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
@kotlin.jvm.JvmStatic public final override /*1*/ /*fake_override*/ fun `write$Self`(/*0*/ self: Parent, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<Derived> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): Derived
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: Derived): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<Derived>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
@kotlinx.serialization.Serializable public open class Parent {
|
||||
public constructor Parent(/*0*/ arg: kotlin.Int)
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor Parent(/*0*/ seen1: kotlin.Int, /*1*/ arg: kotlin.Int, /*2*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
public open val arg: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@kotlin.jvm.JvmStatic public final /*synthesized*/ fun `write$Self`(/*0*/ self: Parent, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<Parent> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): Parent
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: Parent): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<Parent>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
import kotlinx.serialization.*
|
||||
|
||||
|
||||
@Serializable
|
||||
enum class ImplicitlyDuplicated {
|
||||
@SerialName("foo")
|
||||
FIRST,
|
||||
<!DUPLICATE_SERIAL_NAME_ENUM!>@SerialName("foo")<!>
|
||||
SECOND
|
||||
}
|
||||
|
||||
@Serializable
|
||||
enum class ExplicitlyDuplicated {
|
||||
FIRST,
|
||||
SECOND,
|
||||
<!DUPLICATE_SERIAL_NAME_ENUM!>@SerialName("FIRST")<!>
|
||||
THIRD
|
||||
}
|
||||
|
||||
@Serializable
|
||||
enum class ReversedExplicitlyDuplicated {
|
||||
<!DUPLICATE_SERIAL_NAME_ENUM!>@SerialName("THIRD")<!>
|
||||
FIRST,
|
||||
SECOND,
|
||||
THIRD
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE, -OPT_IN_USAGE
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
class Foo(i: Int, val j: Int)
|
||||
|
||||
<!EXTERNAL_CLASS_NOT_SERIALIZABLE!>@Serializer(forClass = Foo::class)<!>
|
||||
object ExternalSerializer
|
||||
@@ -0,0 +1,12 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import java.io.Serializable as JavaSerializable
|
||||
|
||||
@Serializable
|
||||
class Data(val x: Int, <!INCORRECT_TRANSIENT!>@Transient<!> val y: String)
|
||||
|
||||
@Serializable
|
||||
class Data2(val x: Int, @Transient val y: String) : JavaSerializable
|
||||
@@ -0,0 +1,20 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import java.io.Serializable as JavaSerializable
|
||||
import kotlin.jvm.Transient as JavaTransient
|
||||
|
||||
@Serializable
|
||||
class Data(val x: Int, @Transient val y: String = "a")
|
||||
|
||||
@Serializable
|
||||
class Data2(val x: Int, @Transient val y: String = "a") : JavaSerializable
|
||||
|
||||
@Serializable
|
||||
class Data3(val x: Int, @Transient @JavaTransient val y: String = "a") : JavaSerializable
|
||||
|
||||
@Serializable
|
||||
class Data4(val x: Int, <!INCORRECT_TRANSIENT!>@JavaTransient<!> val y: String)
|
||||
@@ -0,0 +1,49 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
// !USE_EXPERIMENTAL: kotlinx.serialization.ExperimentalSerializationApi
|
||||
// FILE: test.kt
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
// TODO: for this test to work, runtime dependency should be updated to (yet unreleased) serialization 1.3.0
|
||||
//@InheritableSerialInfo
|
||||
annotation class I(val value: String)
|
||||
|
||||
enum class E { A, B }
|
||||
|
||||
//@InheritableSerialInfo
|
||||
annotation class I2(val e: E, val k: KClass<*>)
|
||||
|
||||
@Serializable
|
||||
@I("a")
|
||||
sealed class Result {
|
||||
// @I("b")
|
||||
@Serializable class OK(val s: String): Result()
|
||||
}
|
||||
|
||||
@Serializable
|
||||
@I("a")
|
||||
@I2(E.A, E::class)
|
||||
open class A
|
||||
|
||||
@Serializable
|
||||
@I("a")
|
||||
@I2(E.A, E::class)
|
||||
open class Correct: A()
|
||||
|
||||
@Serializable
|
||||
@I("a")
|
||||
//@I2(E.B, E::class)
|
||||
open class B: A()
|
||||
|
||||
@Serializable
|
||||
@I("a")
|
||||
//@I2(E.A, I::class)
|
||||
open class B2: A()
|
||||
|
||||
@Serializable
|
||||
//@I("b")
|
||||
//@I2(E.A, E::class)
|
||||
open class C: B()
|
||||
@@ -0,0 +1,10 @@
|
||||
// This test enshures that analysis ends up without compiler exceptions
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
class Digest() {
|
||||
@Serializer(forClass = Digest::class)
|
||||
companion object : KSerializer<Digest> {}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package
|
||||
|
||||
@kotlinx.serialization.Serializable public final class Digest {
|
||||
public constructor Digest()
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor Digest(/*0*/ seen1: kotlin.Int, /*1*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
@kotlinx.serialization.Serializer(forClass = Digest::class) public companion object Companion : kotlinx.serialization.KSerializer<Digest> {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): Digest
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: Digest): kotlin.Unit
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<Digest>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE,-OPT_IN_USAGE_ERROR,-OPT_IN_USAGE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.descriptors.*
|
||||
import kotlinx.serialization.encoding.*
|
||||
|
||||
fun container() {
|
||||
@Serializable
|
||||
class X // local classes are allowed
|
||||
|
||||
val y = <!ANONYMOUS_OBJECTS_NOT_SUPPORTED!>@Serializable<!> object {
|
||||
fun inObjectFun() {
|
||||
<!ANONYMOUS_OBJECTS_NOT_SUPPORTED!>@Serializable<!>
|
||||
class X // local classes in anonymous object functions are not allowed
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class LocalSerializer : KSerializer<Any?> {
|
||||
override val descriptor: SerialDescriptor = buildSerialDescriptor("tmp", PrimitiveKind.INT)
|
||||
override fun serialize(encoder: Encoder, value: Any?) {
|
||||
encoder.encodeNull()
|
||||
}
|
||||
|
||||
override fun deserialize(decoder: Decoder): Any? {
|
||||
return decoder.decodeNull()
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable
|
||||
class WithLocalSerializerInProperty(<!LOCAL_SERIALIZER_USAGE!>@Serializable(with = LocalSerializer::class)<!> val x: Any?)
|
||||
|
||||
<!LOCAL_SERIALIZER_USAGE, SERIALIZER_TYPE_INCOMPATIBLE!>@Serializable(with = LocalSerializer::class)<!>
|
||||
data class WithLocalSerializer(val i: Int)
|
||||
}
|
||||
|
||||
val topLevelAnon = <!ANONYMOUS_OBJECTS_NOT_SUPPORTED!>@Serializable<!> object {}
|
||||
|
||||
@Serializable class A {
|
||||
@Serializable class B // nested classes are allowed
|
||||
|
||||
<!INNER_CLASSES_NOT_SUPPORTED!>@Serializable<!> inner class C // inner classes are not
|
||||
|
||||
@Serializable object F {} // regular named object, OK
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
open class NonSerializableParent(val arg: Int)
|
||||
|
||||
<!NON_SERIALIZABLE_PARENT_MUST_HAVE_NOARG_CTOR!>@Serializable<!>
|
||||
class Derived(val someData: String): NonSerializableParent(42)
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package
|
||||
|
||||
@kotlinx.serialization.Serializable public final class Derived : NonSerializableParent {
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor Derived(/*0*/ seen1: kotlin.Int, /*1*/ someData: kotlin.String?, /*2*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
public constructor Derived(/*0*/ someData: kotlin.String)
|
||||
public final override /*1*/ /*fake_override*/ val arg: kotlin.Int
|
||||
public final val someData: kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@kotlin.jvm.JvmStatic public final /*synthesized*/ fun `write$Self`(/*0*/ self: Derived, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<Derived> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): Derived
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: Derived): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<Derived>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public open class NonSerializableParent {
|
||||
public constructor NonSerializableParent(/*0*/ arg: kotlin.Int)
|
||||
public final val arg: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
class NonSerializable
|
||||
|
||||
@Serializable
|
||||
class Basic(val foo: <!SERIALIZER_NOT_FOUND("NonSerializable")!>NonSerializable<!>)
|
||||
|
||||
@Serializable
|
||||
class Inside(val foo: List<<!SERIALIZER_NOT_FOUND("NonSerializable")!>NonSerializable<!>>)
|
||||
|
||||
@Serializable
|
||||
class WithImplicitType {
|
||||
<!SERIALIZER_NOT_FOUND("NonSerializable")!>val foo = NonSerializable()<!>
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package
|
||||
|
||||
@kotlinx.serialization.Serializable public final class Basic {
|
||||
public constructor Basic(/*0*/ foo: NonSerializable)
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor Basic(/*0*/ seen1: kotlin.Int, /*1*/ foo: NonSerializable?, /*2*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
public final val foo: NonSerializable
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@kotlin.jvm.JvmStatic public final /*synthesized*/ fun `write$Self`(/*0*/ self: Basic, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<Basic> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): Basic
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: Basic): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<Basic>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
@kotlinx.serialization.Serializable public final class Inside {
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor Inside(/*0*/ seen1: kotlin.Int, /*1*/ foo: kotlin.collections.List<NonSerializable>?, /*2*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
public constructor Inside(/*0*/ foo: kotlin.collections.List<NonSerializable>)
|
||||
public final val foo: kotlin.collections.List<NonSerializable>
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@kotlin.jvm.JvmStatic public final /*synthesized*/ fun `write$Self`(/*0*/ self: Inside, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<Inside> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): Inside
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: Inside): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<Inside>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public final class NonSerializable {
|
||||
public constructor NonSerializable()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlinx.serialization.Serializable public final class WithImplicitType {
|
||||
public constructor WithImplicitType()
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor WithImplicitType(/*0*/ seen1: kotlin.Int, /*1*/ foo: NonSerializable?, /*2*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
public final val foo: NonSerializable
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@kotlin.jvm.JvmStatic public final /*synthesized*/ fun `write$Self`(/*0*/ self: WithImplicitType, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<WithImplicitType> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): WithImplicitType
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: WithImplicitType): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<WithImplicitType>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.descriptors.*
|
||||
import kotlinx.serialization.encoding.*
|
||||
|
||||
@Serializable(NopeNullableSerializer::class)
|
||||
class Nope {}
|
||||
|
||||
class NopeNullableSerializer: KSerializer<Nope?> {
|
||||
override val descriptor: SerialDescriptor get() = TODO()
|
||||
override fun deserialize(decoder: Decoder): Nope? = TODO()
|
||||
override fun serialize(encoder: Encoder, value: Nope?) = TODO()
|
||||
}
|
||||
|
||||
@Serializable
|
||||
class Foo(val foo: <!SERIALIZER_NULLABILITY_INCOMPATIBLE("NopeNullableSerializer", "Nope")!>Nope<!>)
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
package
|
||||
|
||||
@kotlinx.serialization.Serializable public final class Foo {
|
||||
public constructor Foo(/*0*/ foo: Nope)
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor Foo(/*0*/ seen1: kotlin.Int, /*1*/ foo: Nope?, /*2*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
public final val foo: Nope
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@kotlin.jvm.JvmStatic public final /*synthesized*/ fun `write$Self`(/*0*/ self: Foo, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<Foo> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): Foo
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: Foo): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<Foo>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
@kotlinx.serialization.Serializable(with = NopeNullableSerializer::class) public final class Nope {
|
||||
public constructor Nope()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<Nope>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public final class NopeNullableSerializer : kotlinx.serialization.KSerializer<Nope?> {
|
||||
public constructor NopeNullableSerializer()
|
||||
public open override /*1*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): Nope?
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: Nope?): kotlin.Nothing
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
<!PRIMARY_CONSTRUCTOR_PARAMETER_IS_NOT_A_PROPERTY!>@Serializable<!>
|
||||
class Test(val someData: String, cantBeDeserialized: Int)
|
||||
@@ -0,0 +1,31 @@
|
||||
package
|
||||
|
||||
@kotlinx.serialization.Serializable public final class Test {
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor Test(/*0*/ seen1: kotlin.Int, /*1*/ someData: kotlin.String?, /*2*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
public constructor Test(/*0*/ someData: kotlin.String, /*1*/ cantBeDeserialized: kotlin.Int)
|
||||
public final val someData: kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@kotlin.jvm.JvmStatic public final /*synthesized*/ fun `write$Self`(/*0*/ self: Test, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<Test> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): Test
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: Test): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<Test>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.encoding.*
|
||||
|
||||
enum class SimpleEnum { A, B }
|
||||
|
||||
<!EXPLICIT_SERIALIZABLE_IS_REQUIRED!>enum<!> class MarkedNameEnum { @SerialName("a") A, B}
|
||||
|
||||
@Serializable
|
||||
enum class ExplicitlyMarkedEnum { @SerialName("a") A, B}
|
||||
|
||||
@Serializable(EnumSerializer::class)
|
||||
enum class ExplicitlyMarkedEnumCustom { @SerialName("a") A, B}
|
||||
|
||||
object EnumSerializer: KSerializer<ExplicitlyMarkedEnumCustom> {
|
||||
override val descriptor = TODO()
|
||||
override fun serialize(encoder: Encoder, value: ExplicitlyMarkedEnumCustom) = TODO()
|
||||
override fun deserialize(decoder: Decoder): ExplicitlyMarkedEnumCustom = TODO()
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class EnumUsage(val s: SimpleEnum, val m: MarkedNameEnum, val e: ExplicitlyMarkedEnum)
|
||||
@@ -0,0 +1,163 @@
|
||||
package
|
||||
|
||||
public object EnumSerializer : kotlinx.serialization.KSerializer<ExplicitlyMarkedEnumCustom> {
|
||||
private constructor EnumSerializer()
|
||||
public open override /*1*/ val descriptor: kotlin.Nothing
|
||||
public open override /*1*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): ExplicitlyMarkedEnumCustom
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: ExplicitlyMarkedEnumCustom): kotlin.Nothing
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlinx.serialization.Serializable public final data class EnumUsage {
|
||||
public constructor EnumUsage(/*0*/ s: SimpleEnum, /*1*/ m: MarkedNameEnum, /*2*/ e: ExplicitlyMarkedEnum)
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor EnumUsage(/*0*/ seen1: kotlin.Int, /*1*/ s: SimpleEnum?, /*2*/ m: MarkedNameEnum?, /*3*/ e: ExplicitlyMarkedEnum?, /*4*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
public final val e: ExplicitlyMarkedEnum
|
||||
public final val m: MarkedNameEnum
|
||||
public final val s: SimpleEnum
|
||||
public final operator /*synthesized*/ fun component1(): SimpleEnum
|
||||
public final operator /*synthesized*/ fun component2(): MarkedNameEnum
|
||||
public final operator /*synthesized*/ fun component3(): ExplicitlyMarkedEnum
|
||||
public final /*synthesized*/ fun copy(/*0*/ s: SimpleEnum = ..., /*1*/ m: MarkedNameEnum = ..., /*2*/ e: ExplicitlyMarkedEnum = ...): EnumUsage
|
||||
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
@kotlin.jvm.JvmStatic public final /*synthesized*/ fun `write$Self`(/*0*/ self: EnumUsage, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<EnumUsage> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): EnumUsage
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: EnumUsage): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<EnumUsage>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
@kotlinx.serialization.Serializable public final enum class ExplicitlyMarkedEnum : kotlin.Enum<ExplicitlyMarkedEnum> {
|
||||
@kotlinx.serialization.SerialName(value = "a") enum entry A
|
||||
|
||||
enum entry B
|
||||
|
||||
private constructor ExplicitlyMarkedEnum()
|
||||
@kotlin.internal.IntrinsicConstEvaluation public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ExplicitlyMarkedEnum): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<ExplicitlyMarkedEnum!>!
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<ExplicitlyMarkedEnum> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): ExplicitlyMarkedEnum
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: ExplicitlyMarkedEnum): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<ExplicitlyMarkedEnum>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<ExplicitlyMarkedEnum>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): ExplicitlyMarkedEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<ExplicitlyMarkedEnum>
|
||||
}
|
||||
|
||||
@kotlinx.serialization.Serializable(with = EnumSerializer::class) public final enum class ExplicitlyMarkedEnumCustom : kotlin.Enum<ExplicitlyMarkedEnumCustom> {
|
||||
@kotlinx.serialization.SerialName(value = "a") enum entry A
|
||||
|
||||
enum entry B
|
||||
|
||||
private constructor ExplicitlyMarkedEnumCustom()
|
||||
@kotlin.internal.IntrinsicConstEvaluation public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ExplicitlyMarkedEnumCustom): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<ExplicitlyMarkedEnumCustom!>!
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<ExplicitlyMarkedEnumCustom>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<ExplicitlyMarkedEnumCustom>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): ExplicitlyMarkedEnumCustom
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<ExplicitlyMarkedEnumCustom>
|
||||
}
|
||||
|
||||
public final enum class MarkedNameEnum : kotlin.Enum<MarkedNameEnum> {
|
||||
@kotlinx.serialization.SerialName(value = "a") enum entry A
|
||||
|
||||
enum entry B
|
||||
|
||||
private constructor MarkedNameEnum()
|
||||
@kotlin.internal.IntrinsicConstEvaluation public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: MarkedNameEnum): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<MarkedNameEnum!>!
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<MarkedNameEnum>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): MarkedNameEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<MarkedNameEnum>
|
||||
}
|
||||
|
||||
public final enum class SimpleEnum : kotlin.Enum<SimpleEnum> {
|
||||
enum entry A
|
||||
|
||||
enum entry B
|
||||
|
||||
private constructor SimpleEnum()
|
||||
@kotlin.internal.IntrinsicConstEvaluation public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: SimpleEnum): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<SimpleEnum!>!
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<SimpleEnum>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): SimpleEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<SimpleEnum>
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
<!SERIALIZABLE_ANNOTATION_IGNORED!>@Serializable<!>
|
||||
interface INonSerializable
|
||||
|
||||
@Serializable
|
||||
sealed interface SealedSerializable
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
class Bar
|
||||
@Serializer(forClass = Bar::class)
|
||||
object BarSerializer: KSerializer<Bar>
|
||||
|
||||
class Baz
|
||||
@Serializer(forClass = Baz::class)
|
||||
object BazSerializer: KSerializer<Baz>
|
||||
|
||||
@Serializable
|
||||
class Foo1(@Polymorphic val i: Baz)
|
||||
|
||||
@Serializable
|
||||
class Foo2(val li: MutableList<@Serializable(with = BazSerializer::class) Baz>)
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
class Bar
|
||||
@Serializer(forClass = Bar::class)
|
||||
object BarSerializer: KSerializer<Bar>
|
||||
|
||||
class Baz
|
||||
@Serializer(forClass = Baz::class)
|
||||
object BazSerializer: KSerializer<Baz>
|
||||
@Serializer(forClass = Baz::class)
|
||||
object NullableBazSerializer: KSerializer<Baz?>
|
||||
|
||||
<!SERIALIZER_TYPE_INCOMPATIBLE!>@Serializable(with = BazSerializer::class)<!>
|
||||
class Biz(val i: Int)
|
||||
|
||||
@Serializable
|
||||
class Foo(@Serializable(with = BazSerializer::class) val i: <!SERIALIZER_TYPE_INCOMPATIBLE!>Bar<!>)
|
||||
|
||||
@Serializable
|
||||
class Foo2(val li: List<@Serializable(with = BazSerializer::class) <!SERIALIZER_TYPE_INCOMPATIBLE!>Bar<!>>)
|
||||
|
||||
@Serializable
|
||||
class Foo3(@Serializable(with = BazSerializer::class) val i: Baz)
|
||||
|
||||
@Serializable
|
||||
class Foo4(val li: List<@Serializable(with = BazSerializer::class) Baz>)
|
||||
|
||||
@Serializable
|
||||
class Foo5(@Serializable(with = BazSerializer::class) val i: <!SERIALIZER_TYPE_INCOMPATIBLE!>Bar?<!>)
|
||||
|
||||
@Serializable
|
||||
class Foo6(@Serializable(with = NullableBazSerializer::class) val i: <!SERIALIZER_NULLABILITY_INCOMPATIBLE, SERIALIZER_TYPE_INCOMPATIBLE!>Bar<!>)
|
||||
|
||||
@Serializable
|
||||
class Foo7(@Serializable(with = NullableBazSerializer::class) val i: <!SERIALIZER_TYPE_INCOMPATIBLE!>Bar?<!>)
|
||||
@@ -0,0 +1,12 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
data class WithTransients(<!TRANSIENT_MISSING_INITIALIZER!>@Transient val missing: Int<!>) {
|
||||
<!TRANSIENT_IS_REDUNDANT!>@Transient<!> val redundant: Int get() = 42
|
||||
|
||||
@Transient
|
||||
lateinit var allowTransientLateinitWithoutInitializer: String
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package
|
||||
|
||||
@kotlinx.serialization.Serializable public final data class WithTransients {
|
||||
public constructor WithTransients(/*0*/ missing: kotlin.Int)
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public /*synthesized*/ constructor WithTransients(/*0*/ seen1: kotlin.Int, /*1*/ serializationConstructorMarker: kotlinx.serialization.internal.SerializationConstructorMarker?)
|
||||
@kotlinx.serialization.Transient public final lateinit var allowTransientLateinitWithoutInitializer: kotlin.String
|
||||
@kotlinx.serialization.Transient public final val missing: kotlin.Int
|
||||
@kotlinx.serialization.Transient public final val redundant: kotlin.Int
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.Int
|
||||
public final /*synthesized*/ fun copy(/*0*/ missing: kotlin.Int = ...): WithTransients
|
||||
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
@kotlin.jvm.JvmStatic public final /*synthesized*/ fun `write$Self`(/*0*/ self: WithTransients, /*1*/ output: kotlinx.serialization.encoding.CompositeEncoder, /*2*/ serialDesc: kotlinx.serialization.descriptors.SerialDescriptor): kotlin.Unit
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "This synthesized declaration should not be used directly", replaceWith = kotlin.ReplaceWith(expression = "", imports = {})) public object `$serializer` : kotlinx.serialization.internal.GeneratedSerializer<WithTransients> {
|
||||
private constructor `$serializer`()
|
||||
public open override /*1*/ /*synthesized*/ val descriptor: kotlinx.serialization.descriptors.SerialDescriptor
|
||||
public open override /*1*/ /*synthesized*/ fun childSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
public open override /*1*/ /*synthesized*/ fun deserialize(/*0*/ decoder: kotlinx.serialization.encoding.Decoder): WithTransients
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun serialize(/*0*/ encoder: kotlinx.serialization.encoding.Encoder, /*1*/ value: WithTransients): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun typeParametersSerializers(): kotlin.Array<kotlinx.serialization.KSerializer<*>>
|
||||
}
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final /*synthesized*/ fun serializer(): kotlinx.serialization.KSerializer<WithTransients>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
FILE: abstractAndSealed.kt
|
||||
@R|kotlinx/serialization/Serializable|() public sealed interface I : R|kotlin/Any| {
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<I>|
|
||||
|
||||
private constructor(): R|I.Companion|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlinx/serialization/Serializable|() public sealed class X : R|I| {
|
||||
protected constructor(): R|X| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
private final var x: R|kotlin/String| = String(X)
|
||||
private get(): R|kotlin/String|
|
||||
private set(value: R|kotlin/String|): R|kotlin/Unit|
|
||||
|
||||
public final fun exposeX(): R|kotlin/String| {
|
||||
^exposeX this@R|/X|.R|/X.x|
|
||||
}
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<X>|
|
||||
|
||||
private constructor(): R|X.Companion|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlinx/serialization/Serializable|() public abstract class Y : R|X| {
|
||||
public constructor(): R|Y| {
|
||||
super<R|X|>()
|
||||
}
|
||||
|
||||
private final var y: R|kotlin/String| = String(Y)
|
||||
private get(): R|kotlin/String|
|
||||
private set(value: R|kotlin/String|): R|kotlin/Unit|
|
||||
|
||||
public final fun exposeY(): R|kotlin/String| {
|
||||
^exposeY this@R|/Y|.R|/Y.y|
|
||||
}
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<Y>|
|
||||
|
||||
private constructor(): R|Y.Companion|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlinx/serialization/Serializable|() public final class Bottom : R|Y| {
|
||||
public constructor(): R|Bottom| {
|
||||
super<R|Y|>()
|
||||
}
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<Bottom>|
|
||||
|
||||
private constructor(): R|Bottom.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Bottom>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Bottom|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Bottom|
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|Bottom.$serializer|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public final fun testData(results: R|kotlin/String|): R|kotlin/String| {
|
||||
when () {
|
||||
!=(R|<local>/results|, String(OK)) -> {
|
||||
^testData R|<local>/results|
|
||||
}
|
||||
}
|
||||
|
||||
lval serial: R|kotlinx/serialization/KSerializer<Bottom>| = Q|Bottom|.R|/Bottom.Companion.serializer|()
|
||||
lval j: R|kotlinx/serialization/json/Json| = R|kotlinx/serialization/json/Json|(<L> = Json@fun R|kotlinx/serialization/json/JsonBuilder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
|
||||
this@R|special/anonymous|.R|kotlinx/serialization/json/JsonBuilder.encodeDefaults| = Boolean(true)
|
||||
}
|
||||
)
|
||||
lval s: R|kotlin/String| = R|<local>/j|.R|kotlinx/serialization/json/Json.encodeToString|<R|Bottom|>(R|<local>/serial|, R|/Bottom.Bottom|())
|
||||
when () {
|
||||
!=(R|<local>/s|, String({"x":"X","y":"Y"})) -> {
|
||||
^testData <strcat>(String(Incorrect encoding: ), R|<local>/s|)
|
||||
}
|
||||
}
|
||||
|
||||
lval decoded: R|Bottom| = R|<local>/j|.R|kotlinx/serialization/json/Json.decodeFromString|<R|Bottom|>(R|<local>/serial|, String({"x":"1","y":"2"}))
|
||||
when () {
|
||||
!=(R|<local>/decoded|.R|/X.exposeX|(), String(1)) -> {
|
||||
^testData String(Incorrect X)
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
!=(R|<local>/decoded|.R|/Y.exposeY|(), String(2)) -> {
|
||||
^testData String(Incorrect Y)
|
||||
}
|
||||
}
|
||||
|
||||
^testData String(OK)
|
||||
}
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlinx/serialization/ExperimentalSerializationApi|))) public final fun testKinds(): R|kotlin/String| {
|
||||
when () {
|
||||
!=(Q|I|.R|/I.Companion.serializer|().R|SubstitutionOverride<kotlinx/serialization/KSerializer.descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|>|.R|kotlinx/serialization/descriptors/SerialDescriptor.kind|, Q|kotlinx/serialization/descriptors/PolymorphicKind.SEALED|) -> {
|
||||
^testKinds String(Not sealed: I)
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
!=(Q|X|.R|/X.Companion.serializer|().R|SubstitutionOverride<kotlinx/serialization/KSerializer.descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|>|.R|kotlinx/serialization/descriptors/SerialDescriptor.kind|, Q|kotlinx/serialization/descriptors/PolymorphicKind.SEALED|) -> {
|
||||
^testKinds String(Not sealed: X)
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
!=(Q|Y|.R|/Y.Companion.serializer|().R|SubstitutionOverride<kotlinx/serialization/KSerializer.descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|>|.R|kotlinx/serialization/descriptors/SerialDescriptor.kind|, Q|kotlinx/serialization/descriptors/PolymorphicKind.OPEN|) -> {
|
||||
^testKinds String(Not polymorphic: Y)
|
||||
}
|
||||
}
|
||||
|
||||
lval serial: R|kotlinx/serialization/KSerializer<Bottom>| = Q|Bottom|.R|/Bottom.Companion.serializer|()
|
||||
when () {
|
||||
!=(R|<local>/serial|.R|SubstitutionOverride<kotlinx/serialization/KSerializer.descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|>|.R|kotlinx/serialization/descriptors/SerialDescriptor.kind|, Q|kotlinx/serialization/descriptors/StructureKind.CLASS|) -> {
|
||||
^testKinds String(Not class: Bottom)
|
||||
}
|
||||
}
|
||||
|
||||
^testKinds String(OK)
|
||||
}
|
||||
public final fun box(): R|kotlin/String| {
|
||||
^box R|/testData|(R|/testKinds|())
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.descriptors.*
|
||||
import kotlinx.serialization.json.*
|
||||
|
||||
@Serializable
|
||||
sealed interface I
|
||||
|
||||
@Serializable
|
||||
sealed class X: I {
|
||||
private var x = "X"
|
||||
|
||||
fun exposeX() = x
|
||||
}
|
||||
|
||||
@Serializable
|
||||
abstract class Y: X() {
|
||||
private var y = "Y"
|
||||
|
||||
fun exposeY() = y
|
||||
}
|
||||
|
||||
@Serializable
|
||||
class Bottom: Y()
|
||||
|
||||
fun testData(results: String): String {
|
||||
if (results != "OK") return results
|
||||
val serial = Bottom.serializer()
|
||||
val j = Json { encodeDefaults = true }
|
||||
val s = j.encodeToString(serial, Bottom())
|
||||
if (s != """{"x":"X","y":"Y"}""") return "Incorrect encoding: $s"
|
||||
val decoded = j.decodeFromString(serial, """{"x":"1","y":"2"}""")
|
||||
if (decoded.exposeX() != "1") return "Incorrect X"
|
||||
if (decoded.exposeY() != "2") return "Incorrect Y"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
fun testKinds(): String {
|
||||
if (I.serializer().descriptor.kind != PolymorphicKind.SEALED) return "Not sealed: I"
|
||||
if (X.serializer().descriptor.kind != PolymorphicKind.SEALED) return "Not sealed: X"
|
||||
if (Y.serializer().descriptor.kind != PolymorphicKind.OPEN) return "Not polymorphic: Y"
|
||||
val serial = Bottom.serializer()
|
||||
if (serial.descriptor.kind != StructureKind.CLASS) return "Not class: Bottom"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return testData(testKinds())
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
FILE: classWithCompanionObject.kt
|
||||
@R|kotlinx/serialization/Serializable|() public final class SomeClass : R|kotlin/Any| {
|
||||
public constructor(i: R|kotlin/Int|): R|SomeClass| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val i: R|kotlin/Int| = R|<local>/i|
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<SomeClass>|
|
||||
|
||||
private constructor(): R|SomeClass.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<SomeClass>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|SomeClass|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|SomeClass|
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|SomeClass.$serializer|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public final fun box(): R|kotlin/String| {
|
||||
lval targetString: R|kotlin/String| = String({"i":42})
|
||||
lval serializer: R|kotlinx/serialization/KSerializer<SomeClass>| = Q|SomeClass.Companion|.R|/SomeClass.Companion.serializer|()
|
||||
lval descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor| = R|<local>/serializer|.R|SubstitutionOverride<kotlinx/serialization/KSerializer.descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|>|
|
||||
when () {
|
||||
!=(R|<local>/descriptor|.R|kotlin/Any.toString|(), String(SomeClass(i: kotlin.Int))) -> {
|
||||
^box <strcat>(String(Incorrect SerialDescriptor.toString(): ), R|<local>/descriptor|)
|
||||
}
|
||||
}
|
||||
|
||||
lval instance: R|SomeClass| = R|/SomeClass.SomeClass|(Int(42))
|
||||
lval string: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|<R|SomeClass|>(R|<local>/serializer|, R|<local>/instance|)
|
||||
when () {
|
||||
!=(R|<local>/string|, R|<local>/targetString|) -> {
|
||||
^box <strcat>(String(Incorrect serialization result: expected ), R|<local>/targetString|, String(, got ), R|<local>/string|)
|
||||
}
|
||||
}
|
||||
|
||||
lval instance2: R|SomeClass| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.decodeFromString|<R|SomeClass|>(R|<local>/serializer|, R|<local>/string|)
|
||||
when () {
|
||||
!=(R|<local>/instance2|.R|/SomeClass.i|, R|<local>/instance|.R|/SomeClass.i|) -> {
|
||||
^box <strcat>(String(Incorrect deserialization result: expected ), R|<local>/instance|.R|/SomeClass.i|, String(, got ), R|<local>/instance2|.R|/SomeClass.i|)
|
||||
}
|
||||
}
|
||||
|
||||
^box String(OK)
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
|
||||
@Serializable
|
||||
class SomeClass(val i: Int)
|
||||
|
||||
fun box(): String {
|
||||
val targetString = """{"i":42}"""
|
||||
val serializer = SomeClass.Companion.serializer()
|
||||
val descriptor = serializer.descriptor
|
||||
if (descriptor.toString() != "SomeClass(i: kotlin.Int)") return "Incorrect SerialDescriptor.toString(): $descriptor"
|
||||
val instance = SomeClass(42)
|
||||
val string = Json.encodeToString(serializer, instance)
|
||||
if (string != targetString) return "Incorrect serialization result: expected $targetString, got $string"
|
||||
val instance2 = Json.decodeFromString(serializer, string)
|
||||
if (instance2.i != instance.i) return "Incorrect deserialization result: expected ${instance.i}, got ${instance2.i}"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
FILE: classWithGenericParameters.kt
|
||||
@R|kotlinx/serialization/Serializable|() public final class GenericBox<T, V> : R|kotlin/Any| {
|
||||
public constructor<T, V>(i: R|kotlin/Int|, t: R|T|, vs: R|kotlin/collections/List<V>|): R|GenericBox<T, V>| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val i: R|kotlin/Int| = R|<local>/i|
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final val t: R|T| = R|<local>/t|
|
||||
public get(): R|T|
|
||||
|
||||
public final val vs: R|kotlin/collections/List<V>| = R|<local>/vs|
|
||||
public get(): R|kotlin/collections/List<V>|
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun <T, V> serializer(typeSerial0: R|kotlinx/serialization/KSerializer<T>|, typeSerial1: R|kotlinx/serialization/KSerializer<V>|): R|kotlinx/serialization/KSerializer<GenericBox<T, V>>|
|
||||
|
||||
private constructor(): R|GenericBox.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final class $serializer<T, V> : R|kotlinx/serialization/internal/GeneratedSerializer<GenericBox<T, V>>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|GenericBox<T, V>|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|GenericBox<T, V>|
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
public final fun typeParametersSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|GenericBox.$serializer<T, V>|
|
||||
|
||||
private constructor(typeSerial0: R|kotlinx/serialization/KSerializer<T>|, typeSerial1: R|kotlinx/serialization/KSerializer<V>|): R|GenericBox.$serializer<T, V>|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public final fun box(): R|kotlin/String| {
|
||||
lval box: R|GenericBox<kotlin/String, kotlin/Boolean>| = R|/GenericBox.GenericBox|<R|kotlin/String|, R|kotlin/Boolean|>(Int(42), String(foo), R|kotlin/collections/listOf|<R|kotlin/Boolean|>(vararg(Boolean(true), Boolean(false))))
|
||||
lval serial: R|kotlinx/serialization/KSerializer<GenericBox<kotlin/String, kotlin/Boolean>>| = Q|GenericBox|.R|/GenericBox.Companion.serializer|<R|kotlin/String|, R|kotlin/Boolean|>(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|GenericBox<kotlin/String, kotlin/Boolean>|>(R|<local>/serial|, R|<local>/box|)
|
||||
when () {
|
||||
!=(R|<local>/target|, R|<local>/s|) -> {
|
||||
^box <strcat>(String(Incorrect serialization: ), R|<local>/s|)
|
||||
}
|
||||
}
|
||||
|
||||
lval decoded: R|GenericBox<kotlin/String, kotlin/Boolean>| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.decodeFromString|<R|GenericBox<kotlin/String, kotlin/Boolean>|>(R|<local>/serial|, R|<local>/s|)
|
||||
when () {
|
||||
!=(R|<local>/box|.R|SubstitutionOverride</GenericBox.t: R|kotlin/String|>|, R|<local>/decoded|.R|SubstitutionOverride</GenericBox.t: R|kotlin/String|>|) || !=(R|<local>/box|.R|SubstitutionOverride</GenericBox.vs: R|kotlin/collections/List<kotlin/Boolean>|>|, R|<local>/decoded|.R|SubstitutionOverride</GenericBox.vs: R|kotlin/collections/List<kotlin/Boolean>|>|) -> {
|
||||
^box String(Incorrect deserialization)
|
||||
}
|
||||
}
|
||||
|
||||
^box String(OK)
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
import kotlinx.serialization.builtins.*
|
||||
|
||||
@Serializable
|
||||
class GenericBox<T, V>(
|
||||
val i: Int,
|
||||
val t: T,
|
||||
val vs: List<V>
|
||||
)
|
||||
|
||||
fun box(): String {
|
||||
val box = GenericBox(42, "foo", listOf(true, false))
|
||||
val serial = GenericBox.serializer(String.serializer(), Boolean.serializer())
|
||||
val target = """{"i":42,"t":"foo","vs":[true,false]}"""
|
||||
val s = Json.encodeToString(serial, box)
|
||||
if (target != s) return "Incorrect serialization: $s"
|
||||
val decoded = Json.decodeFromString(serial, s)
|
||||
if (box.t != decoded.t || box.vs != decoded.vs) return "Incorrect deserialization"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
FILE: defaultProperties.kt
|
||||
@R|kotlinx/serialization/Serializable|() public final data class SomeClass : R|kotlin/Any| {
|
||||
public constructor(ctor: R|kotlin/Int| = Int(42), ctorDependent: R|kotlin/Int| = R|<local>/ctor|.R|kotlin/Int.plus|(Int(1))): R|SomeClass| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val ctor: R|kotlin/Int| = R|<local>/ctor|
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final val ctorDependent: R|kotlin/Int| = R|<local>/ctorDependent|
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final var body: R|kotlin/String| = String()
|
||||
public get(): R|kotlin/String|
|
||||
public set(value: R|kotlin/String|): R|kotlin/Unit|
|
||||
|
||||
public final var bodyDependent: R|kotlin/Int| = this@R|/SomeClass|.R|/SomeClass.ctor|.R|kotlin/Int.plus|(Int(2))
|
||||
public get(): R|kotlin/Int|
|
||||
public set(value: R|kotlin/Int|): R|kotlin/Unit|
|
||||
|
||||
public final operator fun component1(): R|kotlin/Int|
|
||||
|
||||
public final operator fun component2(): R|kotlin/Int|
|
||||
|
||||
public final fun copy(ctor: R|kotlin/Int| = this@R|/SomeClass|.R|/SomeClass.ctor|, ctorDependent: R|kotlin/Int| = this@R|/SomeClass|.R|/SomeClass.ctorDependent|): R|SomeClass|
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<SomeClass>|
|
||||
|
||||
private constructor(): R|SomeClass.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<SomeClass>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|SomeClass|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|SomeClass|
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|SomeClass.$serializer|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public final fun test(targetString: R|kotlin/String|): R|kotlin/String| {
|
||||
lval json: R|kotlinx/serialization/json/Json| = R|kotlinx/serialization/json/Json|(<L> = Json@fun R|kotlinx/serialization/json/JsonBuilder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
|
||||
this@R|special/anonymous|.R|kotlinx/serialization/json/JsonBuilder.encodeDefaults| = Boolean(true)
|
||||
}
|
||||
)
|
||||
lval c: R|SomeClass| = R|/SomeClass.SomeClass|(Int(1)).R|kotlin/apply|<R|SomeClass|>(<L> = apply@fun R|SomeClass|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
|
||||
this@R|special/anonymous|.R|/SomeClass.body| = String(x)
|
||||
}
|
||||
)
|
||||
lval s: R|kotlin/String| = R|<local>/json|.R|kotlinx/serialization/json/Json.encodeToString|<R|SomeClass|>(Q|SomeClass|.R|/SomeClass.Companion.serializer|(), R|<local>/c|)
|
||||
when () {
|
||||
!=(R|<local>/s|, R|<local>/targetString|) -> {
|
||||
^test R|<local>/s|
|
||||
}
|
||||
}
|
||||
|
||||
lval i2: R|SomeClass| = R|<local>/json|.R|kotlinx/serialization/json/Json.decodeFromString|<R|SomeClass|>(Q|SomeClass|.R|/SomeClass.Companion.serializer|(), String({}))
|
||||
when () {
|
||||
!=(R|<local>/i2|.R|/SomeClass.ctor|, Int(42)) -> {
|
||||
^test String(Incorrect default ctor)
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
!=(R|<local>/i2|.R|/SomeClass.ctorDependent|, Int(43)) -> {
|
||||
^test String(Incorrect default ctorDependent)
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
!=(R|<local>/i2|.R|/SomeClass.body|, String()) -> {
|
||||
^test String(Incorrect default body)
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
!=(R|<local>/i2|.R|/SomeClass.bodyDependent|, Int(44)) -> {
|
||||
^test String(Incorrect default bodyDependent)
|
||||
}
|
||||
}
|
||||
|
||||
^test String(OK)
|
||||
}
|
||||
public final fun box(): R|kotlin/String| {
|
||||
^box R|/test|(String({"ctor":1,"ctorDependent":2,"body":"x","bodyDependent":3}))
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
|
||||
@Serializable
|
||||
data class SomeClass(val ctor: Int = 42, val ctorDependent: Int = ctor + 1) {
|
||||
var body: String = ""
|
||||
|
||||
var bodyDependent = ctor + 2
|
||||
}
|
||||
|
||||
fun test(targetString: String): String {
|
||||
val json = Json { encodeDefaults = true }
|
||||
val c = SomeClass(1).apply { body = "x" }
|
||||
val s = json.encodeToString(SomeClass.serializer(), c)
|
||||
if (s != targetString) return s
|
||||
val i2 = json.decodeFromString(SomeClass.serializer(), "{}")
|
||||
if (i2.ctor != 42) return "Incorrect default ctor"
|
||||
if (i2.ctorDependent != 43) return "Incorrect default ctorDependent"
|
||||
if (i2.body != "") return "Incorrect default body"
|
||||
if (i2.bodyDependent != 44) return "Incorrect default bodyDependent"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return test("""{"ctor":1,"ctorDependent":2,"body":"x","bodyDependent":3}""")
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
FILE: enums.kt
|
||||
public final enum class Plain : R|kotlin/Enum<Plain>| {
|
||||
private constructor(): R|Plain| {
|
||||
super<R|kotlin/Enum<Plain>|>()
|
||||
}
|
||||
|
||||
public final static enum entry A: R|Plain|
|
||||
public final static enum entry B: R|Plain|
|
||||
public final static fun values(): R|kotlin/Array<Plain>| {
|
||||
}
|
||||
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|Plain| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<Plain>|
|
||||
public get(): R|kotlin/enums/EnumEntries<Plain>|
|
||||
|
||||
}
|
||||
@R|kotlinx/serialization/Serializable|() public final enum class WithNames : R|kotlin/Enum<WithNames>| {
|
||||
private constructor(): R|WithNames| {
|
||||
super<R|kotlin/Enum<WithNames>|>()
|
||||
}
|
||||
|
||||
@R|kotlinx/serialization/SerialName|(value = String(A)) public final static enum entry ENTRY1: R|WithNames| = object : R|WithNames| {
|
||||
private constructor(): R|<anonymous>| {
|
||||
super<R|WithNames|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@R|kotlinx/serialization/SerialName|(value = String(B)) public final static enum entry ENTRY2: R|WithNames| = object : R|WithNames| {
|
||||
private constructor(): R|<anonymous>| {
|
||||
super<R|WithNames|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final static fun values(): R|kotlin/Array<WithNames>| {
|
||||
}
|
||||
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|WithNames| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<WithNames>|
|
||||
public get(): R|kotlin/enums/EnumEntries<WithNames>|
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<WithNames>|
|
||||
|
||||
private constructor(): R|WithNames.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<WithNames>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|WithNames|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|WithNames|
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|WithNames.$serializer|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlinx/serialization/Serializable|() public final class Holder : R|kotlin/Any| {
|
||||
public constructor(p: R|Plain|, w: R|WithNames|): R|Holder| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val p: R|Plain| = R|<local>/p|
|
||||
public get(): R|Plain|
|
||||
|
||||
public final val w: R|WithNames| = R|<local>/w|
|
||||
public get(): R|WithNames|
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<Holder>|
|
||||
|
||||
private constructor(): R|Holder.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Holder>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Holder|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Holder|
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|Holder.$serializer|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlinx/serialization/InternalSerializationApi|))) public final fun testSerializers(): R|kotlin/String| {
|
||||
lval cs: R|kotlin/Array<kotlinx/serialization/KSerializer<*>>| = (Q|Holder|.R|/Holder.Companion.serializer|() as R|kotlinx/serialization/internal/GeneratedSerializer<*>|).R|SubstitutionOverride<kotlinx/serialization/internal/GeneratedSerializer.childSerializers: R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|>|()
|
||||
lval str1: R|kotlin/String| = R|<local>/cs|.R|SubstitutionOverride<kotlin/Array.get: R|kotlinx/serialization/KSerializer<*>|>|(Int(0)).R|kotlin/Any.toString|()
|
||||
when () {
|
||||
R|<local>/str1|.R|kotlin/text/contains|(String(kotlinx.serialization.internal.EnumSerializer)).R|kotlin/Boolean.not|() -> {
|
||||
^testSerializers R|<local>/str1|
|
||||
}
|
||||
}
|
||||
|
||||
^testSerializers String(OK)
|
||||
}
|
||||
public final fun testSerialization(previous: R|kotlin/String|): R|kotlin/String| {
|
||||
when () {
|
||||
!=(R|<local>/previous|, String(OK)) -> {
|
||||
^testSerialization R|<local>/previous|
|
||||
}
|
||||
}
|
||||
|
||||
lval h: R|Holder| = R|/Holder.Holder|(Q|Plain|.R|/Plain.B|, Q|WithNames|.R|/WithNames.ENTRY1|)
|
||||
lval s: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|<R|Holder|>(Q|Holder|.R|/Holder.Companion.serializer|(), R|<local>/h|)
|
||||
when () {
|
||||
!=(R|<local>/s|, String({"p":"B","w":"A"})) -> {
|
||||
^testSerialization R|<local>/s|
|
||||
}
|
||||
}
|
||||
|
||||
^testSerialization String(OK)
|
||||
}
|
||||
public final fun box(): R|kotlin/String| {
|
||||
^box R|/testSerialization|(R|/testSerializers|())
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
import kotlinx.serialization.internal.*
|
||||
|
||||
enum class Plain {
|
||||
A, B
|
||||
}
|
||||
|
||||
@Serializable enum class WithNames {
|
||||
@SerialName("A") ENTRY1,
|
||||
@SerialName("B") ENTRY2
|
||||
}
|
||||
|
||||
@Serializable
|
||||
class Holder(val p: Plain, val w: WithNames)
|
||||
|
||||
@OptIn(InternalSerializationApi::class)
|
||||
fun testSerializers(): String {
|
||||
val cs = (Holder.serializer() as GeneratedSerializer<*>).childSerializers()
|
||||
val str1 = cs[0].toString()
|
||||
if (!str1.contains("kotlinx.serialization.internal.EnumSerializer")) return str1
|
||||
|
||||
/**
|
||||
* Serialization 1.4.1+ have runtime factories to create EnumSerializer instead of synthetic $serializer, saving bytecode
|
||||
* and bringing consistency. After updating the version, uncomment this block.
|
||||
*/
|
||||
// val str2 = cs[1].toString()
|
||||
// if (!str2.contains("kotlinx.serialization.internal.EnumSerializer")) return str2
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testSerialization(previous: String): String {
|
||||
if (previous != "OK") return previous
|
||||
val h = Holder(Plain.B, WithNames.ENTRY1)
|
||||
val s = Json.encodeToString(Holder.serializer(), h)
|
||||
if (s != """{"p":"B","w":"A"}""") return s
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return testSerialization(testSerializers())
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
FILE: inlineClasses.kt
|
||||
@R|kotlinx/serialization/Serializable|() @R|kotlin/jvm/JvmInline|() public final inline class Foo : R|kotlin/Any| {
|
||||
public constructor(i: R|kotlin/Int|): R|Foo| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val i: R|kotlin/Int| = R|<local>/i|
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<Foo>|
|
||||
|
||||
private constructor(): R|Foo.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Foo>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Foo|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Foo|
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|Foo.$serializer|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlinx/serialization/Serializable|() public final class Holder : R|kotlin/Any| {
|
||||
public constructor(f: R|Foo|): R|Holder| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val f: R|Foo| = R|<local>/f|
|
||||
public get(): R|Foo|
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<Holder>|
|
||||
|
||||
private constructor(): R|Holder.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Holder>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Holder|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Holder|
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|Holder.$serializer|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public final fun box(): R|kotlin/String| {
|
||||
when () {
|
||||
Q|Foo|.R|/Foo.Companion.serializer|().R|SubstitutionOverride<kotlinx/serialization/KSerializer.descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|>|.R|kotlinx/serialization/descriptors/SerialDescriptor.isInline|.R|kotlin/Boolean.not|() -> {
|
||||
^box String(Incorrect descriptor)
|
||||
}
|
||||
}
|
||||
|
||||
lval s: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|<R|Holder|>(Q|Holder|.R|/Holder.Companion.serializer|(), R|/Holder.Holder|(R|/Foo.Foo|(Int(42))))
|
||||
when () {
|
||||
!=(R|<local>/s|, String({"f":42})) -> {
|
||||
^box R|<local>/s|
|
||||
}
|
||||
}
|
||||
|
||||
^box String(OK)
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
import kotlinx.serialization.internal.*
|
||||
|
||||
@Serializable
|
||||
@JvmInline
|
||||
value class Foo(val i: Int)
|
||||
|
||||
@Serializable
|
||||
class Holder(val f: Foo)
|
||||
|
||||
fun box(): String {
|
||||
if(!Foo.serializer().descriptor.isInline) return "Incorrect descriptor"
|
||||
val s = Json.encodeToString(Holder.serializer(), Holder(Foo(42)))
|
||||
if (s != """{"f":42}""") return s
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
FILE: multipleProperties.kt
|
||||
@R|kotlinx/serialization/Serializable|() public final class SomeClass : R|kotlin/Any| {
|
||||
public constructor(ctor: R|kotlin/Int|): R|SomeClass| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val ctor: R|kotlin/Int| = R|<local>/ctor|
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final var body: R|kotlin/String| = String()
|
||||
public get(): R|kotlin/String|
|
||||
public set(value: R|kotlin/String|): R|kotlin/Unit|
|
||||
|
||||
public final val getter: R|kotlin/Int|
|
||||
public get(): R|kotlin/Int| {
|
||||
^ Int(42)
|
||||
}
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<SomeClass>|
|
||||
|
||||
private constructor(): R|SomeClass.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<SomeClass>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|SomeClass|): R|kotlin/Unit|
|
||||
|
||||
public final fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|SomeClass|
|
||||
|
||||
public final val descriptor: R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
public get(): R|kotlinx/serialization/descriptors/SerialDescriptor|
|
||||
|
||||
public final fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|SomeClass.$serializer|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public final fun test(targetString: R|kotlin/String|): R|kotlin/String| {
|
||||
lval c: R|SomeClass| = R|/SomeClass.SomeClass|(Int(1)).R|kotlin/apply|<R|SomeClass|>(<L> = apply@fun R|SomeClass|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
|
||||
this@R|special/anonymous|.R|/SomeClass.body| = String(x)
|
||||
}
|
||||
)
|
||||
lval s: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|<R|SomeClass|>(Q|SomeClass|.R|/SomeClass.Companion.serializer|(), R|<local>/c|)
|
||||
when () {
|
||||
!=(R|<local>/s|, R|<local>/targetString|) -> {
|
||||
^test R|<local>/s|
|
||||
}
|
||||
}
|
||||
|
||||
lval i: R|SomeClass| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.decodeFromString|<R|SomeClass|>(Q|SomeClass|.R|/SomeClass.Companion.serializer|(), R|<local>/s|)
|
||||
when () {
|
||||
!=(R|<local>/i|.R|/SomeClass.ctor|, R|<local>/c|.R|/SomeClass.ctor|) -> {
|
||||
^test String(Incorrect ctor)
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
!=(R|<local>/i|.R|/SomeClass.body|, R|<local>/c|.R|/SomeClass.body|) -> {
|
||||
^test String(Incorrect body)
|
||||
}
|
||||
}
|
||||
|
||||
^test String(OK)
|
||||
}
|
||||
public final fun box(): R|kotlin/String| {
|
||||
^box R|/test|(String({"ctor":1,"body":"x"}))
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
|
||||
@Serializable
|
||||
class SomeClass(val ctor: Int) {
|
||||
var body: String = ""
|
||||
|
||||
// Not serializable: no backing field
|
||||
val getter: Int get() = 42
|
||||
}
|
||||
|
||||
fun test(targetString: String): String {
|
||||
val c = SomeClass(1).apply { body = "x" }
|
||||
val s = Json.encodeToString(SomeClass.serializer(), c)
|
||||
if (s != targetString) return s
|
||||
val i = Json.decodeFromString(SomeClass.serializer(), s)
|
||||
if (i.ctor != c.ctor) return "Incorrect ctor"
|
||||
if (i.body != c.body) return "Incorrect body"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return test("""{"ctor":1,"body":"x"}""")
|
||||
}
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
FILE: privatePropertiesSerialization.kt
|
||||
@R|kotlinx/serialization/Serializable|() public open class Parent : R|kotlin/Any| {
|
||||
public constructor(ctor: R|kotlin/Int|): R|Parent| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
private final val ctor: R|kotlin/Int| = R|<local>/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|<local>/c|) -> {
|
||||
^checkDeser <strcat>(String(Ctor : ), this@R|/Parent|.R|/Parent.ctor|)
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
!=(this@R|/Parent|.R|/Parent.body|, R|<local>/b|) -> {
|
||||
^checkDeser <strcat>(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<Parent>|
|
||||
|
||||
private constructor(): R|Parent.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Parent>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Parent|): R|kotlin/Unit|
|
||||
|
||||
public final 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 fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|Parent.$serializer|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlinx/serialization/Serializable|() public final class Derived : R|Parent| {
|
||||
public constructor(): R|Derived| {
|
||||
super<R|Parent|>(Int(42))
|
||||
}
|
||||
|
||||
public final companion object Companion : R|kotlin/Any| {
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<Derived>|
|
||||
|
||||
private constructor(): R|Derived.Companion|
|
||||
|
||||
}
|
||||
|
||||
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Derived>| {
|
||||
public final fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Derived|): R|kotlin/Unit|
|
||||
|
||||
public final 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 fun childSerializers(): R|kotlin/Array<kotlinx/serialization/KSerializer<*>>|
|
||||
|
||||
private constructor(): R|Derived.$serializer|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
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|(<L> = Json@fun R|kotlinx/serialization/json/JsonBuilder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
|
||||
this@R|special/anonymous|.R|kotlinx/serialization/json/JsonBuilder.encodeDefaults| = Boolean(true)
|
||||
}
|
||||
)
|
||||
lval s: R|kotlin/String| = R|<local>/j|.R|kotlinx/serialization/json/Json.encodeToString|<R|Derived|>(Q|Derived|.R|/Derived.Companion.serializer|(), R|<local>/c|)
|
||||
when () {
|
||||
!=(R|<local>/s|, R|<local>/targetString|) -> {
|
||||
^test R|<local>/s|
|
||||
}
|
||||
}
|
||||
|
||||
lval d: R|Derived| = R|<local>/j|.R|kotlinx/serialization/json/Json.decodeFromString|<R|Derived|>(Q|Derived|.R|/Derived.Companion.serializer|(), String({"ctor":43,"body":"43"}))
|
||||
^test R|<local>/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"}))
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
/**
|
||||
* write$Self and synthetic constructor are required for correct serialization and deserialization of private fields,
|
||||
* otherwise inaccessible from e.g. Derived.$serializer.serialize().
|
||||
* This test verifies that.
|
||||
*/
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
|
||||
@Serializable
|
||||
open class Parent(private val ctor: Int) {
|
||||
private var body: String = "42"
|
||||
|
||||
fun checkDeser(c: Int, b: String): String {
|
||||
if (this.ctor != c) return "Ctor : ${this.ctor}"
|
||||
if (this.body != b) return "Body : ${this.body}"
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable
|
||||
class Derived: Parent(42)
|
||||
|
||||
fun test(targetString: String): String {
|
||||
val c = Derived()
|
||||
val j = Json { encodeDefaults = true }
|
||||
val s = j.encodeToString(Derived.serializer(), c)
|
||||
if (s != targetString) return s
|
||||
val d = j.decodeFromString(Derived.serializer(), """{"ctor":43,"body":"43"}""")
|
||||
return d.checkDeser(43, "43")
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return test("""{"ctor":42,"body":"42"}""")
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
FILE: serializableObject.kt
|
||||
@R|kotlinx/serialization/Serializable|() public final object FooBar : R|kotlin/Any| {
|
||||
private constructor(): R|FooBar| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final fun serializer(): R|kotlinx/serialization/KSerializer<FooBar>|
|
||||
|
||||
}
|
||||
public final fun box(): R|kotlin/String| {
|
||||
lval encoded: R|kotlin/String| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.encodeToString|<R|FooBar|>(Q|FooBar|.R|/FooBar.serializer|(), Q|FooBar|)
|
||||
when () {
|
||||
!=(R|<local>/encoded|, String({})) -> {
|
||||
^box R|<local>/encoded|
|
||||
}
|
||||
}
|
||||
|
||||
lval decoded: R|FooBar| = Q|kotlinx/serialization/json/Json|.R|kotlinx/serialization/json/Json.decodeFromString|<R|FooBar|>(Q|FooBar|.R|/FooBar.serializer|(), R|<local>/encoded|)
|
||||
when () {
|
||||
!==(R|<local>/decoded|, Q|FooBar|) -> {
|
||||
^box String(Incorrect object instance)
|
||||
}
|
||||
}
|
||||
|
||||
^box String(OK)
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.*
|
||||
|
||||
@Serializable
|
||||
object FooBar
|
||||
|
||||
fun box(): String {
|
||||
val encoded = Json.encodeToString(FooBar.serializer(), FooBar)
|
||||
if (encoded != "{}") return encoded
|
||||
val decoded = Json.decodeFromString(FooBar.serializer(), encoded)
|
||||
if (decoded !== FooBar) return "Incorrect object instance"
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user