From 13cf9329b233acaed34a51e3e49cd92835eecaa1 Mon Sep 17 00:00:00 2001 From: Georgy Bronnikov Date: Tue, 3 Aug 2021 23:11:00 +0300 Subject: [PATCH] IR: always serialize constant initializers for fields. --- .../kotlin/backend/common/serialization/IrFileSerializer.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt index 26b82c0cdd8..738eee50476 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt @@ -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)