Skip to content

Commit 5bea9e5

Browse files
committed
feat: add error when Value class that contains primitive kind is serialized polymorphically with 'type' parameter
Associated issue: [issue-2938](Kotlin#2938) (cherry picked from commit 71b38d9)
1 parent 5439653 commit 5bea9e5

File tree

1 file changed

+5
-0
lines changed
  • formats/json/commonMain/src/kotlinx/serialization/json/internal

1 file changed

+5
-0
lines changed

formats/json/commonMain/src/kotlinx/serialization/json/internal/Polymorphic.kt

+5
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ private fun validateIfSealed(
5454
classDiscriminator: String
5555
) {
5656
if (serializer !is SealedClassSerializer<*>) return
57+
58+
if (actualSerializer.descriptor.run { isInline && getElementDescriptor(0).kind is PrimitiveKind }) {
59+
error("Value class that contains primitive kind cannot be serialized polymorphically with 'type' parameter. You can use 'JsonBuilder.useArrayPolymorphism' instead")
60+
}
61+
5762
@Suppress("DEPRECATION_ERROR")
5863
if (classDiscriminator in actualSerializer.descriptor.jsonCachedSerialNames()) {
5964
val baseName = serializer.descriptor.serialName

0 commit comments

Comments
 (0)