diff --git a/build.gradle.kts b/build.gradle.kts index c906c23b..aa23ae59 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -54,7 +54,7 @@ kotlin { val commonMain by getting { dependencies { - api("org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.1") + api("org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.0") } } diff --git a/src/commonMain/kotlin/com/charleskorn/kaml/YamlPolymorphicInput.kt b/src/commonMain/kotlin/com/charleskorn/kaml/YamlPolymorphicInput.kt index df674cfe..68ed7cc4 100644 --- a/src/commonMain/kotlin/com/charleskorn/kaml/YamlPolymorphicInput.kt +++ b/src/commonMain/kotlin/com/charleskorn/kaml/YamlPolymorphicInput.kt @@ -107,7 +107,7 @@ internal class YamlPolymorphicInput(private val typeName: String, private val ty private fun throwIfUnknownPolymorphicTypeException(e: Exception, deserializer: DeserializationStrategy<*>) { val message = e.message ?: return - val match = unknownPolymorphicTypeExceptionMessage.matchEntire(message) ?: return + val match = unknownPolymorphicTypeExceptionMessage.matchAt(message, 0) ?: return val unknownType = match.groupValues[1] val className = match.groupValues[2] @@ -146,7 +146,7 @@ internal class YamlPolymorphicInput(private val typeName: String, private val ty } @ExperimentalSerializationApi - override fun polymorphicDefaultDeserializer(baseClass: KClass, defaultDeserializerProvider: (className: String?) -> DeserializationStrategy?) { + override fun polymorphicDefaultDeserializer(baseClass: KClass, defaultDeserializerProvider: (className: String?) -> DeserializationStrategy?) { throw UnsupportedOperationException("This method should never be called") } }) @@ -161,6 +161,6 @@ internal class YamlPolymorphicInput(private val typeName: String, private val ty } companion object { - private val unknownPolymorphicTypeExceptionMessage: Regex = """^Class '(.*)' is not registered for polymorphic serialization in the scope of '(.*)'.\nMark the base class as 'sealed' or register the serializer explicitly.$""".toRegex() + private val unknownPolymorphicTypeExceptionMessage: Regex = """^Class '(.*)' is not registered for polymorphic serialization in the scope of '(.*)'.\n.*""".toRegex() } }