summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonid Startsev <sandwwraith@users.noreply.github.com>2022-09-22 19:06:51 +0300
committerGitHub <noreply@github.com>2022-09-22 19:06:51 +0300
commit4ed6cce294f8fe61adaaa1ecf47d92176966ddd3 (patch)
treeaac65c406bfd8f8d0a19b3927a87578038b16de4
parentec830423f2ab1ec85f4e1169f7772316e98eeef4 (diff)
downloadkotlinx.serialization-4ed6cce294f8fe61adaaa1ecf47d92176966ddd3.tar.gz
Deprecate .isNullable in SerialDescriptor builder (#2040)
because it wasn't working properly and better alternative exists. Fixes #1929
-rw-r--r--core/commonMain/src/kotlinx/serialization/descriptors/SerialDescriptors.kt1
-rw-r--r--core/commonTest/src/kotlinx/serialization/SerialDescriptorBuilderTest.kt7
2 files changed, 8 insertions, 0 deletions
diff --git a/core/commonMain/src/kotlinx/serialization/descriptors/SerialDescriptors.kt b/core/commonMain/src/kotlinx/serialization/descriptors/SerialDescriptors.kt
index a461ca6f..e82bb8f5 100644
--- a/core/commonMain/src/kotlinx/serialization/descriptors/SerialDescriptors.kt
+++ b/core/commonMain/src/kotlinx/serialization/descriptors/SerialDescriptors.kt
@@ -240,6 +240,7 @@ public class ClassSerialDescriptorBuilder internal constructor(
* in its [KSerializer] type parameter and handle nulls during encoding and decoding.
*/
@ExperimentalSerializationApi
+ @Deprecated("isNullable inside buildSerialDescriptor is deprecated. Please use SerialDescriptor.nullable extension on a builder result.", level = DeprecationLevel.ERROR)
public var isNullable: Boolean = false
/**
diff --git a/core/commonTest/src/kotlinx/serialization/SerialDescriptorBuilderTest.kt b/core/commonTest/src/kotlinx/serialization/SerialDescriptorBuilderTest.kt
index 78b015b5..1ff2a7ba 100644
--- a/core/commonTest/src/kotlinx/serialization/SerialDescriptorBuilderTest.kt
+++ b/core/commonTest/src/kotlinx/serialization/SerialDescriptorBuilderTest.kt
@@ -87,4 +87,11 @@ class SerialDescriptorBuilderTest {
assertFailsWith<IllegalArgumentException> { PrimitiveSerialDescriptor(" ", PrimitiveKind.STRING) }
assertFailsWith<IllegalArgumentException> { PrimitiveSerialDescriptor("\t", PrimitiveKind.STRING) }
}
+
+ @Test
+ fun testNullableBuild() {
+ val descriptor = buildClassSerialDescriptor("my.Simple") {}.nullable
+ assertTrue(descriptor.isNullable)
+ assertEquals("my.Simple?", descriptor.serialName)
+ }
}