Add (currently) no-op annotations to the kibrary for smoother migration
diff --git a/runtime/common/src/main/kotlin/kotlinx/serialization/Annotations.kt b/runtime/common/src/main/kotlin/kotlinx/serialization/Annotations.kt
index b155b8e..84df1d7 100644
--- a/runtime/common/src/main/kotlin/kotlinx/serialization/Annotations.kt
+++ b/runtime/common/src/main/kotlin/kotlinx/serialization/Annotations.kt
@@ -61,3 +61,18 @@
*/
@Target(AnnotationTarget.ANNOTATION_CLASS)
annotation class SerialInfo
+
+/**
+ * Instructs to use [ContextSerializer] on an annotated property or type.
+ * If used on a file, instructs to use [ContextSerializer] for all listed KClasses.
+ *
+ * @param [forClasses] Classes to use ContextSerializer for in current file.
+ */
+@Target(AnnotationTarget.PROPERTY, AnnotationTarget.FILE, AnnotationTarget.TYPE)
+annotation class ContextualSerialization(vararg val forClasses: KClass<*>)
+
+/**
+ * Instructs to use [PolymorphicSerializer] on an annotated property or type.
+ */
+@Target(AnnotationTarget.PROPERTY, AnnotationTarget.TYPE)
+annotation class Polymorphic
diff --git a/runtime/common/src/test/kotlin/kotlinx/serialization/CustomSerializersTest.kt b/runtime/common/src/test/kotlin/kotlinx/serialization/CustomSerializersTest.kt
index 0ed2beb..b0f6fc2 100644
--- a/runtime/common/src/test/kotlin/kotlinx/serialization/CustomSerializersTest.kt
+++ b/runtime/common/src/test/kotlin/kotlinx/serialization/CustomSerializersTest.kt
@@ -26,7 +26,7 @@
class CustomSerializersTest {
@Serializable
- data class A(@SerialId(1) val b: B)
+ data class A(@ContextualSerialization @SerialId(1) val b: B)
data class B(@SerialId(1) val value: Int)
@@ -43,7 +43,7 @@
}
@Serializable
- data class BList(@SerialId(1) val bs: List<B>)
+ data class BList(@SerialId(1) val bs: List<@ContextualSerialization B>)
@Serializable
data class C(@SerialId(1) @Optional val a: Int = 31, @SerialId(2) val b: Int = 42) {
diff --git a/runtime/jvm/src/test/kotlin/kotlinx/serialization/CustomSerializersJVMTest.kt b/runtime/jvm/src/test/kotlin/kotlinx/serialization/CustomSerializersJVMTest.kt
index 4196baf..54a8674 100644
--- a/runtime/jvm/src/test/kotlin/kotlinx/serialization/CustomSerializersJVMTest.kt
+++ b/runtime/jvm/src/test/kotlin/kotlinx/serialization/CustomSerializersJVMTest.kt
@@ -32,15 +32,15 @@
@Serializable
data class EnhancedData(
- val data: Data,
- val stringPayload: Payload,
- @Serializable(with = BinaryPayloadSerializer::class) val binaryPayload: Payload
+ val data: Data,
+ @ContextualSerialization val stringPayload: Payload,
+ @Serializable(with = BinaryPayloadSerializer::class) val binaryPayload: Payload
)
data class Payload(val s: String)
@Serializable
- data class PayloadList(val ps: List<Payload>)
+ data class PayloadList(val ps: List<@ContextualSerialization Payload>)
@Serializer(forClass = Payload::class)
object PayloadSerializer {}