diff options
author | Leonid Startsev <sandwwraith@users.noreply.github.com> | 2022-09-22 19:06:51 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-22 19:06:51 +0300 |
commit | 4ed6cce294f8fe61adaaa1ecf47d92176966ddd3 (patch) | |
tree | aac65c406bfd8f8d0a19b3927a87578038b16de4 | |
parent | ec830423f2ab1ec85f4e1169f7772316e98eeef4 (diff) | |
download | kotlinx.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.kt | 1 | ||||
-rw-r--r-- | core/commonTest/src/kotlinx/serialization/SerialDescriptorBuilderTest.kt | 7 |
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) + } } |