Skip to content

Commit

Permalink
New name: unwrappedNullable
Browse files Browse the repository at this point in the history
  • Loading branch information
Chuckame committed Apr 17, 2024
1 parent 5d22d74 commit 7a82e70
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ public val SerialDescriptor.nullable: SerialDescriptor
* @see KSerializer.nullable
*/
@ExperimentalSerializationApi
public val SerialDescriptor.unwrapNullable: SerialDescriptor
public val SerialDescriptor.unwrappedNullable: SerialDescriptor
get() = when (this) {
is SerialDescriptorForNullable -> original
else -> this
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,22 +96,22 @@ class SerialDescriptorBuilderTest {
}

@Test
fun testUnwrapNullable() {
fun testUnwrappedNullable() {
listOf(
buildClassSerialDescriptor("my.Simple") {},
Boolean.serializer().descriptor,
String.serializer().descriptor,
ListSerializer(Int.serializer()).descriptor,
).forEach { originalDescriptor ->
// Unwrapping nullable when it is not nullable should return the same descriptor (no-op operation)
assertSame(originalDescriptor.unwrapNullable, originalDescriptor)
assertSame(originalDescriptor.unwrappedNullable, originalDescriptor)

// Unwrapping nullable when it is nullable should return the original descriptor
assertSame(originalDescriptor.nullable.unwrapNullable, originalDescriptor)
assertSame(originalDescriptor.nullable.unwrappedNullable, originalDescriptor)
}

@Serializable class Type(val field: String?)
// Unwrapping nullable of a nullable field should return the original non-null descriptor
assertSame(Type.serializer().descriptor.getElementDescriptor(0).unwrapNullable, String.serializer().descriptor)
assertSame(Type.serializer().descriptor.getElementDescriptor(0).unwrappedNullable, String.serializer().descriptor)
}
}

0 comments on commit 7a82e70

Please sign in to comment.