Remove unnecessary ignoreIndexTo outside writeSelf

It never worked: descriptor.declaresDefaultValue used by property.isOptional
works only for current module
(since it looks up psi), so we never access default value initializers
outside current module
This commit is contained in:
Leonid Startsev
2021-04-20 23:16:11 +03:00
committed by Space
parent 66f39ca185
commit a58f29aa06
@@ -272,16 +272,6 @@ open class SerializerIrGenerator(
})
+irInvoke(null, writeSelfFunction.symbol, typeArgs, args)
} else {
// No write$Self, old behaviour:
// Ignore comparing to default values of properties from superclass,
// because we do not have access to their fields (and initializers), if superclass is in another module.
val superClass = serializableIrClass.getSuperClassOrAny().descriptor
val ignoreIndexTo = if (superClass.isInternalSerializable) {
bindingContext.serializablePropertiesFor(superClass).size
} else {
-1
}
val propertyByParamReplacer: (ValueParameterDescriptor) -> IrExpression? =
createPropertyByParamReplacer(serializableIrClass, serializableProperties, objectToSerialize, bindingContext)
@@ -291,7 +281,7 @@ open class SerializerIrGenerator(
serializeAllProperties(
this@SerializerIrGenerator, serializableIrClass, serializableProperties, objectToSerialize,
localOutput, localSerialDesc, kOutputClass, ignoreIndexTo, initializerAdapter
localOutput, localSerialDesc, kOutputClass, ignoreIndexTo = -1, initializerAdapter
) { it, _ ->
val (_, ir) = localSerializersFieldsDescriptors[it]
irGetField(irGet(saveFunc.dispatchReceiverParameter!!), ir.backingField!!)