blob: d6a3532d7bb711528665f4b686a48074138234c0 [file] [log] [blame]
// TARGET_BACKEND: JVM_IR
// WITH_STDLIB
import kotlinx.serialization.*
import kotlinx.serialization.descriptors.*
import kotlinx.serialization.builtins.*
@Serializable
data class Main(val fields: MainFields) {
companion object {
fun fieldsSerializer(): KSerializer<MainFields> = MainFields.serializer()
}
}
@Serializable
data class MainFields(val firstName: String?)
@Serializable
data class Box<T>(val boxed: T) {
companion object {
fun <T> serializerLike(tSer: KSerializer<T>): KSerializer<List<Box<T>>> = ListSerializer(serializer(tSer))
}
}
fun box(): String {
if (Main.fieldsSerializer().descriptor.toString() != "MainFields(firstName: kotlin.String?)") return "Error1"
if (MainFields.serializer().descriptor.toString() != "MainFields(firstName: kotlin.String?)") return "Error2"
if (Main.serializer().descriptor.toString() != "Main(fields: MainFields)") return "Error3"
val boxListDesc = Box.serializerLike(String.serializer()).descriptor
if (boxListDesc.toString() != "kotlin.collections.ArrayList(Box(boxed: kotlin.String))") return boxListDesc.toString()
val boxDesc = Box.serializer(String.serializer()).descriptor
if (boxDesc.toString() != "Box(boxed: kotlin.String)") return boxDesc.toString()
return "OK"
}