summaryrefslogtreecommitdiff
path: root/core/commonTest/src/kotlinx/serialization/features/SchemaTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'core/commonTest/src/kotlinx/serialization/features/SchemaTest.kt')
-rw-r--r--core/commonTest/src/kotlinx/serialization/features/SchemaTest.kt14
1 files changed, 9 insertions, 5 deletions
diff --git a/core/commonTest/src/kotlinx/serialization/features/SchemaTest.kt b/core/commonTest/src/kotlinx/serialization/features/SchemaTest.kt
index dece1704..c3d6ac00 100644
--- a/core/commonTest/src/kotlinx/serialization/features/SchemaTest.kt
+++ b/core/commonTest/src/kotlinx/serialization/features/SchemaTest.kt
@@ -7,6 +7,8 @@ package kotlinx.serialization.features
import kotlinx.serialization.*
import kotlinx.serialization.builtins.*
import kotlinx.serialization.descriptors.*
+import kotlinx.serialization.encoding.Decoder
+import kotlinx.serialization.encoding.Encoder
import kotlinx.serialization.internal.*
import kotlinx.serialization.test.EnumSerializer
import kotlin.test.*
@@ -18,15 +20,17 @@ class SchemaTest {
@Serializable
data class Box<T>(val boxed: T)
- @Serializable
+ @Serializable(Data1.Companion::class)
data class Data1(val l: List<Int> = emptyList(), val s: String) {
- @Serializer(forClass = Data1::class)
- companion object {
- // TODO removal of explicit type crashes the compiler
- override val descriptor: SerialDescriptor = buildClassSerialDescriptor("Data1") {
+ companion object: KSerializer<Data1> {
+ override val descriptor = buildClassSerialDescriptor("Data1") {
element("l", listSerialDescriptor<Int>(), isOptional = true)
element("s", serialDescriptor<String>())
}
+
+ override fun serialize(encoder: Encoder, value: Data1) = error("Should not be called")
+
+ override fun deserialize(decoder: Decoder): Data1 = error("Should not be called")
}
}