IR: always serialize constant initializers for fields.

This commit is contained in:
Georgy Bronnikov
2021-08-03 23:11:00 +03:00
committed by TeamCityServer
parent 7e71bd8f1c
commit 13cf9329b2
@@ -1282,7 +1282,11 @@ open class IrFileSerializer(
val proto = ProtoField.newBuilder()
.setBase(serializeIrDeclarationBase(field, FieldFlags.encode(field)))
.setNameType(serializeNameAndType(field.name, field.type))
if (!skipMutableState && !(bodiesOnlyForInlines && (field.parent as? IrDeclarationWithVisibility)?.visibility != DescriptorVisibilities.LOCAL)) {
if (!skipMutableState &&
!(bodiesOnlyForInlines &&
(field.parent as? IrDeclarationWithVisibility)?.visibility != DescriptorVisibilities.LOCAL &&
(field.initializer?.expression !is IrConst<*>))
) {
val initializer = field.initializer?.expression
if (initializer != null) {
proto.initializer = serializeIrExpressionBody(initializer)