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"
)
fun addFieldCall(fieldName: String) =
irCall(addFuncS, type = compilerContext.irBuiltIns.unitType).apply {
dispatchReceiver = irGet(localDesc)
}.mapValueParameters { irString(fieldName) }
fun addFieldCall(prop: SerializableProperty) = irInvoke(
irGet(localDesc),
addFuncS,
irString(prop.name),
irBoolean(prop.optional),
typeHint = compilerContext.irBuiltIns.unitType
)
for (classProp in serializableProperties) {
if (classProp.transient) continue
+addFieldCall(classProp.name)
+addFieldCall(classProp)
// add property annotations
copySerialInfoAnnotationsToDescriptor(
classProp.irField.correspondingProperty?.annotations.orEmpty(),