Fix missing optionality of property when generating descriptor in Native

This commit is contained in:
Leonid Startsev
2019-02-19 14:32:05 +03:00
parent 8b16801f0d
commit 7d2c59fb70
@@ -91,14 +91,17 @@ class SerializerIrGenerator(val irClass: IrClass, override val compilerContext:
nameHint = "serialDesc" nameHint = "serialDesc"
) )
fun addFieldCall(fieldName: String) = fun addFieldCall(prop: SerializableProperty) = irInvoke(
irCall(addFuncS, type = compilerContext.irBuiltIns.unitType).apply { irGet(localDesc),
dispatchReceiver = irGet(localDesc) addFuncS,
}.mapValueParameters { irString(fieldName) } irString(prop.name),
irBoolean(prop.optional),
typeHint = compilerContext.irBuiltIns.unitType
)
for (classProp in serializableProperties) { for (classProp in serializableProperties) {
if (classProp.transient) continue if (classProp.transient) continue
+addFieldCall(classProp.name) +addFieldCall(classProp)
// add property annotations // add property annotations
copySerialInfoAnnotationsToDescriptor( copySerialInfoAnnotationsToDescriptor(
classProp.irField.correspondingProperty?.annotations.orEmpty(), classProp.irField.correspondingProperty?.annotations.orEmpty(),