diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt index 01dfcc8b31b..5647871791c 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt @@ -85,8 +85,8 @@ val Annotations.serialNameValue: String? return value } -val Annotations.serialOptional: Boolean - get() = hasAnnotation(SerializationAnnotations.serialOptionalFqName) +val Annotations.serialRequired: Boolean + get() = hasAnnotation(SerializationAnnotations.requiredAnnotationFqName) val Annotations.serialTransient: Boolean get() = hasAnnotation(SerializationAnnotations.serialTransientFqName) diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/NamingConventions.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/NamingConventions.kt index a5bcea3ede0..7f83fb63cd9 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/NamingConventions.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/NamingConventions.kt @@ -17,7 +17,7 @@ object SerializationAnnotations { val serializableAnnotationFqName = FqName("kotlinx.serialization.Serializable") val serializerAnnotationFqName = FqName("kotlinx.serialization.Serializer") internal val serialNameAnnotationFqName = FqName("kotlinx.serialization.SerialName") - internal val serialOptionalFqName = FqName("kotlinx.serialization.Optional") + internal val requiredAnnotationFqName = FqName("kotlinx.serialization.Required") internal val serialTransientFqName = FqName("kotlinx.serialization.Transient") internal val serialInfoFqName = FqName("kotlinx.serialization.SerialInfo") diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperty.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperty.kt index 51964370cf4..b20eddeeaf4 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperty.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperty.kt @@ -37,7 +37,7 @@ class SerializableProperty( val genericIndex = type.genericIndex val module = descriptor.module val serializableWith = extractSerializableWith(descriptor.annotations) - val optional = descriptor.declaresDefaultValue + val optional = !descriptor.annotations.serialRequired && descriptor.declaresDefaultValue val transient = descriptor.annotations.serialTransient || !hasBackingField val annotationsWithArguments: List, List>> = descriptor.annotationsWithArguments()