diff options
author | Leonid Startsev <sandwwraith@users.noreply.github.com> | 2023-03-29 18:18:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-29 18:18:54 +0200 |
commit | e2092a41693c79686e787ccd975579aabb0b2412 (patch) | |
tree | a89714176664159a1a686403eaab11c16e567c0f /formats/json | |
parent | 2b77da3b00138f7a79d31e0bb29aa60024fc8267 (diff) | |
download | kotlinx.serialization-e2092a41693c79686e787ccd975579aabb0b2412.tar.gz |
Get rid of deprecated toChar() in JS-specific code (#2252)
Apparently -Werror flag is not applied to JS sources in kotlin.js.compiler=both mode
Diffstat (limited to 'formats/json')
-rw-r--r-- | formats/json/jsMain/src/kotlinx/serialization/json/internal/DynamicDecoders.kt | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/formats/json/jsMain/src/kotlinx/serialization/json/internal/DynamicDecoders.kt b/formats/json/jsMain/src/kotlinx/serialization/json/internal/DynamicDecoders.kt index 1447881c..86c7a85c 100644 --- a/formats/json/jsMain/src/kotlinx/serialization/json/internal/DynamicDecoders.kt +++ b/formats/json/jsMain/src/kotlinx/serialization/json/internal/DynamicDecoders.kt @@ -134,7 +134,12 @@ private open class DynamicInput( override fun decodeTaggedChar(tag: String): Char { return when (val value = getByTag(tag)) { is String -> if (value.length == 1) value[0] else throw SerializationException("$value can't be represented as Char") - is Number -> value.toChar() + is Number -> { + val num = value as? Double ?: throw SerializationException("$value is not a Number") + val codePoint = toJavascriptLong(num) + if (codePoint < 0 || codePoint > Char.MAX_VALUE.code) throw SerializationException("$value can't be represented as Char because it's not in bounds of Char.MIN_VALUE..Char.MAX_VALUE") + codePoint.toInt().toChar() + } else -> throw SerializationException("$value can't be represented as Char") } } |