Currently they have different formats:
interface X
@Serializable
sealed interface Y
@Test
fun names() {
println(serializer<X>().descriptor.serialName) // kotlinx.serialization.Polymorphic<X>
println(serializer<Y>().descriptor.serialName) // kotlinx.serialization.features.DefaultPolymorphicSerializerTest.Y
}
Moreover, X's name is not affected by @SerialName (
|
override val serialName = "${original.serialName}<${kClass.simpleName}>" |
).
Changing it would bring uniformity in exception messages, but it is a potential breaking change.