IR KT-46578 add IrProperty#overriddenSymbols

This commit is contained in:
Dmitry Petrov
2021-05-11 16:23:27 +03:00
committed by teamcityserver
parent dc9d5cdf35
commit 53c1de172f
91 changed files with 1165 additions and 22 deletions
@@ -152,6 +152,9 @@ internal object PersistentIrGenerator {
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)
@@ -30,6 +30,11 @@ internal fun PersistentIrGenerator.generateProperty() {
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 @@ internal fun PersistentIrGenerator.generateProperty() {
backingFieldField.toPersistentField(+"null"),
getterField.toPersistentField(+"null"),
setterField.toPersistentField(+"null"),
overriddenSymbolsField.toPersistentField(+"emptyList()"),
+"override var metadata: " + MetadataSource + "? = null",
lines(
+"@Suppress(\"LeakingThis\")",
@@ -71,6 +77,7 @@ internal fun PersistentIrGenerator.generateProperty() {
backingFieldField,
getterField,
setterField,
overriddenSymbolsField,
)()
})
@@ -79,5 +86,6 @@ internal fun PersistentIrGenerator.generateProperty() {
backingFieldField,
getterField,
setterField,
overriddenSymbolsField,
)
}