-- PIR IrProperty#overriddenSymbols
diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/serialization/IrCarrierDeserializer.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/serialization/IrCarrierDeserializer.kt index 3b1707e..d4a6772 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/serialization/IrCarrierDeserializer.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/serialization/IrCarrierDeserializer.kt
@@ -231,7 +231,7 @@ if (proto.hasBackingField()) deserializeField(proto.backingField) else null, if (proto.hasGetter()) deserializeSimpleFunction(proto.getter) else null, if (proto.hasSetter()) deserializeSimpleFunction(proto.setter) else null, - emptyList() // TODO + proto.overriddenSymbolsList.map { deserializePropertySymbol(it) } ) }
diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/serialization/IrCarrierSerializer.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/serialization/IrCarrierSerializer.kt index 002b9f1..c85b44f 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/serialization/IrCarrierSerializer.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/serialization/IrCarrierSerializer.kt
@@ -207,6 +207,7 @@ carrier.backingFieldSymbolField?.let { proto.setBackingField(serializeField(it)) } carrier.getterSymbolField?.let { proto.setGetter(serializeSimpleFunction(it)) } carrier.setterSymbolField?.let { proto.setSetter(serializeSimpleFunction(it)) } + proto.addAllOverriddenSymbols(carrier.overriddenSymbolsField.map { serializePropertySymbol(it) }) return proto.build().toByteArray() }
diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt index dd2d105..e8d568d 100644 --- a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt
@@ -152,6 +152,9 @@ val simpleFunctionProto = Proto("int64", "simpleFunction", +"Long", IrSimpleFunctionSymbol) val simpleFunctionSymbolListProto = Proto("int64", "simpleFunctionSymbol", +"Long", IrSimpleFunctionSymbol, fieldKind = FieldKind.REPEATED) + val propertySymbolListProto = + Proto("int64", "propertySymbol", +"Long", IrPropertySymbol, fieldKind = FieldKind.REPEATED) + val fieldProto = Proto("int64", "field", +"Long", IrFieldSymbol) val visibilityProto = Proto(null, "visibility", +"Long", DescriptorVisibility)
diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Property.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Property.kt index 4293a1b..21bf1f3 100644 --- a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Property.kt +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Property.kt
@@ -30,6 +30,11 @@ symbolToDeclaration = +"?.owner", declarationToSymbol = +"?.symbol" ) + val overriddenSymbolsField = Field( + "overriddenSymbols", + +"List<" + IrPropertySymbol + ">", + propertySymbolListProto + ) writeFile("PersistentIrPropertyCommon.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { lines( @@ -55,6 +60,7 @@ backingFieldField.toPersistentField(+"null"), getterField.toPersistentField(+"null"), setterField.toPersistentField(+"null"), + overriddenSymbolsField.toPersistentField(+"emptyList()"), +"override var metadata: " + MetadataSource + "? = null", lines( +"@Suppress(\"LeakingThis\")", @@ -71,6 +77,7 @@ backingFieldField, getterField, setterField, + overriddenSymbolsField, )() }) @@ -79,5 +86,6 @@ backingFieldField, getterField, setterField, + overriddenSymbolsField, ) } \ No newline at end of file
diff --git a/compiler/ir/serialization.common/src/KotlinPirCarriers.proto b/compiler/ir/serialization.common/src/KotlinPirCarriers.proto index 2130d22..fd1085b 100644 --- a/compiler/ir/serialization.common/src/KotlinPirCarriers.proto +++ b/compiler/ir/serialization.common/src/KotlinPirCarriers.proto
@@ -103,6 +103,7 @@ optional int64 backingField = 5; optional int64 getter = 6; optional int64 setter = 7; + repeated int64 overriddenSymbols = 8; } message PirTypeAliasCarrier {