IR: make isExternal immutable

This commit is contained in:
Anton Bannykh
2021-02-26 13:31:59 +03:00
committed by TeamCityServer
parent b0e0e62c0b
commit 87f3ca3f36
32 changed files with 45 additions and 141 deletions
@@ -58,9 +58,8 @@ abstract class AbstractFir2IrLazyFunction<F : FirMemberDeclaration>(
override val isInline: Boolean override val isInline: Boolean
get() = fir.isInline get() = fir.isInline
override var isExternal: Boolean by lazyVar { override val isExternal: Boolean
fir.isExternal get() = fir.isExternal
}
override val isExpect: Boolean override val isExpect: Boolean
get() = fir.isExpect get() = fir.isExpect
@@ -84,11 +84,8 @@ class Fir2IrLazyClass(
override val isData: Boolean override val isData: Boolean
get() = fir.isData get() = fir.isData
override var isExternal: Boolean override val isExternal: Boolean
get() = fir.isExternal get() = fir.isExternal
set(_) {
error("Mutating Fir2Ir lazy elements is not possible")
}
override val isInline: Boolean override val isInline: Boolean
get() = fir.isInline get() = fir.isInline
@@ -50,11 +50,8 @@ class Fir2IrLazyConstructor(
override val isInline: Boolean override val isInline: Boolean
get() = fir.isInline get() = fir.isInline
override var isExternal: Boolean override val isExternal: Boolean
get() = fir.isExternal get() = fir.isExternal
set(_) {
error("Mutating Fir2Ir lazy elements is not possible")
}
override val isExpect: Boolean override val isExpect: Boolean
get() = fir.isExpect get() = fir.isExpect
@@ -63,11 +63,8 @@ class Fir2IrLazyProperty(
override val isDelegated: Boolean override val isDelegated: Boolean
get() = fir.delegate != null get() = fir.delegate != null
override var isExternal: Boolean override val isExternal: Boolean
get() = fir.isExternal get() = fir.isExternal
set(_) {
error("Mutating Fir2Ir lazy elements is not possible")
}
override val isExpect: Boolean override val isExpect: Boolean
get() = fir.isExpect get() = fir.isExpect
@@ -36,7 +36,7 @@ class IrClassImpl(
override val isCompanion: Boolean = false, override val isCompanion: Boolean = false,
override val isInner: Boolean = false, override val isInner: Boolean = false,
override val isData: Boolean = false, override val isData: Boolean = false,
override var isExternal: Boolean = false, override val isExternal: Boolean = false,
override val isInline: Boolean = false, override val isInline: Boolean = false,
override val isExpect: Boolean = false, override val isExpect: Boolean = false,
override val isFun: Boolean = false, override val isFun: Boolean = false,
@@ -38,7 +38,7 @@ class IrConstructorImpl(
override var visibility: DescriptorVisibility, override var visibility: DescriptorVisibility,
returnType: IrType, returnType: IrType,
override val isInline: Boolean, override val isInline: Boolean,
override var isExternal: Boolean, override val isExternal: Boolean,
override val isPrimary: Boolean, override val isPrimary: Boolean,
override val isExpect: Boolean, override val isExpect: Boolean,
override val containerSource: DeserializedContainerSource? = null, override val containerSource: DeserializedContainerSource? = null,
@@ -36,7 +36,7 @@ class IrFieldImpl(
override var type: IrType, override var type: IrType,
override var visibility: DescriptorVisibility, override var visibility: DescriptorVisibility,
override val isFinal: Boolean, override val isFinal: Boolean,
override var isExternal: Boolean, override val isExternal: Boolean,
override val isStatic: Boolean, override val isStatic: Boolean,
) : IrField() { ) : IrField() {
init { init {
@@ -29,7 +29,7 @@ abstract class IrFunctionCommonImpl(
override var visibility: DescriptorVisibility, override var visibility: DescriptorVisibility,
returnType: IrType, returnType: IrType,
override val isInline: Boolean, override val isInline: Boolean,
override var isExternal: Boolean, override val isExternal: Boolean,
override val isTailrec: Boolean, override val isTailrec: Boolean,
override val isSuspend: Boolean, override val isSuspend: Boolean,
override val isOperator: Boolean, override val isOperator: Boolean,
@@ -37,7 +37,7 @@ abstract class IrPropertyCommonImpl(
override val isConst: Boolean, override val isConst: Boolean,
override val isLateinit: Boolean, override val isLateinit: Boolean,
override val isDelegated: Boolean, override val isDelegated: Boolean,
override var isExternal: Boolean, override val isExternal: Boolean,
override val isExpect: Boolean, override val isExpect: Boolean,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
) : IrProperty() { ) : IrProperty() {
@@ -42,7 +42,7 @@ internal class PersistentIrClass(
override val isCompanion: Boolean = false, override val isCompanion: Boolean = false,
override val isInner: Boolean = false, override val isInner: Boolean = false,
override val isData: Boolean = false, override val isData: Boolean = false,
isExternal: Boolean = false, override val isExternal: Boolean = false,
override val isInline: Boolean = false, override val isInline: Boolean = false,
override val isExpect: Boolean = false, override val isExpect: Boolean = false,
override val isFun: Boolean = false, override val isFun: Boolean = false,
@@ -152,17 +152,6 @@ internal class PersistentIrClass(
} }
} }
override var isExternalField: Boolean = isExternal
override var isExternal: Boolean
get() = getCarrier().isExternalField
set(v) {
if (isExternal != v) {
setCarrier()
isExternalField = v
}
}
override var attributeOwnerIdField: IrAttributeContainer = this override var attributeOwnerIdField: IrAttributeContainer = this
override var attributeOwnerId: IrAttributeContainer override var attributeOwnerId: IrAttributeContainer
@@ -36,7 +36,7 @@ internal class PersistentIrConstructor(
visibility: DescriptorVisibility, visibility: DescriptorVisibility,
returnType: IrType, returnType: IrType,
override val isInline: Boolean, override val isInline: Boolean,
isExternal: Boolean, override val isExternal: Boolean,
override val isPrimary: Boolean, override val isPrimary: Boolean,
override val isExpect: Boolean, override val isExpect: Boolean,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
@@ -158,17 +158,6 @@ internal class PersistentIrConstructor(
} }
} }
override var isExternalField: Boolean = isExternal
override var isExternal: Boolean
get() = getCarrier().isExternalField
set(v) {
if (isExternal != v) {
setCarrier()
isExternalField = v
}
}
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
override val descriptor: ClassConstructorDescriptor override val descriptor: ClassConstructorDescriptor
get() = symbol.descriptor get() = symbol.descriptor
@@ -32,7 +32,7 @@ internal class PersistentIrField(
type: IrType, type: IrType,
override var visibility: DescriptorVisibility, override var visibility: DescriptorVisibility,
override val isFinal: Boolean, override val isFinal: Boolean,
isExternal: Boolean, override val isExternal: Boolean,
override val isStatic: Boolean, override val isStatic: Boolean,
override val factory: PersistentIrFactory override val factory: PersistentIrFactory
) : IrField(), ) : IrField(),
@@ -103,15 +103,4 @@ internal class PersistentIrField(
typeField = v typeField = v
} }
} }
override var isExternalField: Boolean = isExternal
override var isExternal: Boolean
get() = getCarrier().isExternalField
set(v) {
if (isExternal != v) {
setCarrier()
isExternalField = v
}
}
} }
@@ -35,7 +35,7 @@ internal abstract class PersistentIrFunctionCommon(
visibility: DescriptorVisibility, visibility: DescriptorVisibility,
returnType: IrType, returnType: IrType,
override val isInline: Boolean, override val isInline: Boolean,
isExternal: Boolean, override val isExternal: Boolean,
override val isTailrec: Boolean, override val isTailrec: Boolean,
override val isSuspend: Boolean, override val isSuspend: Boolean,
override val isOperator: Boolean, override val isOperator: Boolean,
@@ -189,15 +189,4 @@ internal abstract class PersistentIrFunctionCommon(
correspondingPropertySymbolField = v correspondingPropertySymbolField = v
} }
} }
override var isExternalField: Boolean = isExternal
override var isExternal: Boolean
get() = getCarrier().isExternalField
set(v) {
if (isExternal != v) {
setCarrier()
isExternalField = v
}
}
} }
@@ -31,7 +31,7 @@ internal abstract class PersistentIrPropertyCommon(
override val isConst: Boolean, override val isConst: Boolean,
override val isLateinit: Boolean, override val isLateinit: Boolean,
override val isDelegated: Boolean, override val isDelegated: Boolean,
isExternal: Boolean, override val isExternal: Boolean,
override val isExpect: Boolean, override val isExpect: Boolean,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val factory: PersistentIrFactory override val factory: PersistentIrFactory
@@ -104,15 +104,4 @@ internal abstract class PersistentIrPropertyCommon(
attributeOwnerIdField = v attributeOwnerIdField = v
} }
} }
override var isExternalField: Boolean = isExternal
override var isExternal: Boolean
get() = getCarrier().isExternalField
set(v) {
if (isExternal != v) {
setCarrier()
isExternalField = v
}
}
} }
@@ -26,7 +26,6 @@ internal interface ClassCarrier : DeclarationCarrier{
val attributeOwnerIdField: IrAttributeContainer val attributeOwnerIdField: IrAttributeContainer
val typeParametersField: List<IrTypeParameter> val typeParametersField: List<IrTypeParameter>
val superTypesField: List<IrType> val superTypesField: List<IrType>
val isExternalField: Boolean
override fun clone(): ClassCarrier { override fun clone(): ClassCarrier {
return ClassCarrierImpl( return ClassCarrierImpl(
@@ -40,8 +39,7 @@ internal interface ClassCarrier : DeclarationCarrier{
modalityField, modalityField,
attributeOwnerIdField, attributeOwnerIdField,
typeParametersField, typeParametersField,
superTypesField, superTypesField
isExternalField
) )
} }
} }
@@ -57,6 +55,5 @@ internal class ClassCarrierImpl(
override val modalityField: Modality, override val modalityField: Modality,
override val attributeOwnerIdField: IrAttributeContainer, override val attributeOwnerIdField: IrAttributeContainer,
override val typeParametersField: List<IrTypeParameter>, override val typeParametersField: List<IrTypeParameter>,
override val superTypesField: List<IrType>, override val superTypesField: List<IrType>
override val isExternalField: Boolean
) : ClassCarrier ) : ClassCarrier
@@ -26,7 +26,6 @@ internal interface ConstructorCarrier : DeclarationCarrier{
val visibilityField: DescriptorVisibility val visibilityField: DescriptorVisibility
val typeParametersField: List<IrTypeParameter> val typeParametersField: List<IrTypeParameter>
val valueParametersField: List<IrValueParameter> val valueParametersField: List<IrValueParameter>
val isExternalField: Boolean
override fun clone(): ConstructorCarrier { override fun clone(): ConstructorCarrier {
return ConstructorCarrierImpl( return ConstructorCarrierImpl(
@@ -41,8 +40,7 @@ internal interface ConstructorCarrier : DeclarationCarrier{
metadataField, metadataField,
visibilityField, visibilityField,
typeParametersField, typeParametersField,
valueParametersField, valueParametersField
isExternalField
) )
} }
} }
@@ -59,6 +57,5 @@ internal class ConstructorCarrierImpl(
override val metadataField: MetadataSource?, override val metadataField: MetadataSource?,
override val visibilityField: DescriptorVisibility, override val visibilityField: DescriptorVisibility,
override val typeParametersField: List<IrTypeParameter>, override val typeParametersField: List<IrTypeParameter>,
override val valueParametersField: List<IrValueParameter>, override val valueParametersField: List<IrValueParameter>
override val isExternalField: Boolean
) : ConstructorCarrier ) : ConstructorCarrier
@@ -20,7 +20,6 @@ internal interface FieldCarrier : DeclarationCarrier{
val initializerField: IrExpressionBody? val initializerField: IrExpressionBody?
val correspondingPropertySymbolField: IrPropertySymbol? val correspondingPropertySymbolField: IrPropertySymbol?
val metadataField: MetadataSource? val metadataField: MetadataSource?
val isExternalField: Boolean
override fun clone(): FieldCarrier { override fun clone(): FieldCarrier {
return FieldCarrierImpl( return FieldCarrierImpl(
@@ -31,8 +30,7 @@ internal interface FieldCarrier : DeclarationCarrier{
typeField, typeField,
initializerField, initializerField,
correspondingPropertySymbolField, correspondingPropertySymbolField,
metadataField, metadataField
isExternalField
) )
} }
} }
@@ -45,6 +43,5 @@ internal class FieldCarrierImpl(
override val typeField: IrType, override val typeField: IrType,
override val initializerField: IrExpressionBody?, override val initializerField: IrExpressionBody?,
override val correspondingPropertySymbolField: IrPropertySymbol?, override val correspondingPropertySymbolField: IrPropertySymbol?,
override val metadataField: MetadataSource?, override val metadataField: MetadataSource?
override val isExternalField: Boolean
) : FieldCarrier ) : FieldCarrier
@@ -32,7 +32,6 @@ internal interface FunctionCarrier : DeclarationCarrier{
val correspondingPropertySymbolField: IrPropertySymbol? val correspondingPropertySymbolField: IrPropertySymbol?
val overriddenSymbolsField: List<IrSimpleFunctionSymbol> val overriddenSymbolsField: List<IrSimpleFunctionSymbol>
val attributeOwnerIdField: IrAttributeContainer val attributeOwnerIdField: IrAttributeContainer
val isExternalField: Boolean
override fun clone(): FunctionCarrier { override fun clone(): FunctionCarrier {
return FunctionCarrierImpl( return FunctionCarrierImpl(
@@ -50,8 +49,7 @@ internal interface FunctionCarrier : DeclarationCarrier{
valueParametersField, valueParametersField,
correspondingPropertySymbolField, correspondingPropertySymbolField,
overriddenSymbolsField, overriddenSymbolsField,
attributeOwnerIdField, attributeOwnerIdField
isExternalField
) )
} }
} }
@@ -71,6 +69,5 @@ internal class FunctionCarrierImpl(
override val valueParametersField: List<IrValueParameter>, override val valueParametersField: List<IrValueParameter>,
override val correspondingPropertySymbolField: IrPropertySymbol?, override val correspondingPropertySymbolField: IrPropertySymbol?,
override val overriddenSymbolsField: List<IrSimpleFunctionSymbol>, override val overriddenSymbolsField: List<IrSimpleFunctionSymbol>,
override val attributeOwnerIdField: IrAttributeContainer, override val attributeOwnerIdField: IrAttributeContainer
override val isExternalField: Boolean
) : FunctionCarrier ) : FunctionCarrier
@@ -21,7 +21,6 @@ internal interface PropertyCarrier : DeclarationCarrier{
val setterField: IrSimpleFunction? val setterField: IrSimpleFunction?
val metadataField: MetadataSource? val metadataField: MetadataSource?
val attributeOwnerIdField: IrAttributeContainer val attributeOwnerIdField: IrAttributeContainer
val isExternalField: Boolean
override fun clone(): PropertyCarrier { override fun clone(): PropertyCarrier {
return PropertyCarrierImpl( return PropertyCarrierImpl(
@@ -33,8 +32,7 @@ internal interface PropertyCarrier : DeclarationCarrier{
getterField, getterField,
setterField, setterField,
metadataField, metadataField,
attributeOwnerIdField, attributeOwnerIdField
isExternalField
) )
} }
} }
@@ -48,6 +46,5 @@ internal class PropertyCarrierImpl(
override val getterField: IrSimpleFunction?, override val getterField: IrSimpleFunction?,
override val setterField: IrSimpleFunction?, override val setterField: IrSimpleFunction?,
override val metadataField: MetadataSource?, override val metadataField: MetadataSource?,
override val attributeOwnerIdField: IrAttributeContainer, override val attributeOwnerIdField: IrAttributeContainer
override val isExternalField: Boolean
) : PropertyCarrier ) : PropertyCarrier
@@ -13,7 +13,6 @@ internal fun PersistentIrGenerator.generateClass() {
val metadataField = Field("metadata", irDeclaration("MetadataSource") + "?") val metadataField = Field("metadata", irDeclaration("MetadataSource") + "?")
val modalityField = Field("modality", descriptorType("Modality")) val modalityField = Field("modality", descriptorType("Modality"))
val attributeOwnerIdField = Field("attributeOwnerId", IrAttributeContainer) val attributeOwnerIdField = Field("attributeOwnerId", IrAttributeContainer)
val isExternalField = Field("isExternal", +"Boolean", notEq = "!=")
writeFile("PersistentIrClass.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { writeFile("PersistentIrClass.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") {
lines( lines(
@@ -69,7 +68,6 @@ internal fun PersistentIrGenerator.generateClass() {
superTypesField.toPersistentField(+"emptyList()"), superTypesField.toPersistentField(+"emptyList()"),
metadataField.toPersistentField(+"null"), metadataField.toPersistentField(+"null"),
modalityField.toPersistentField(+"modality"), modalityField.toPersistentField(+"modality"),
isExternalField.toPersistentField(+"isExternal"),
attributeOwnerIdField.toPersistentField(+"this"), attributeOwnerIdField.toPersistentField(+"this"),
), ),
id, id,
@@ -86,7 +84,6 @@ internal fun PersistentIrGenerator.generateClass() {
attributeOwnerIdField, attributeOwnerIdField,
typeParametersField, typeParametersField,
superTypesField, superTypesField,
isExternalField,
)() )()
}) })
} }
@@ -14,7 +14,6 @@ internal fun PersistentIrGenerator.generateConstructor() {
val bodyField = Field("body", IrBody + "?") val bodyField = Field("body", IrBody + "?")
val metadataField = Field("metadata", MetadataSource + "?") val metadataField = Field("metadata", MetadataSource + "?")
val visibilityField = Field("visibility", DescriptorVisibility) val visibilityField = Field("visibility", DescriptorVisibility)
val isExternalField = Field("isExternal", +"Boolean", notEq = "!=")
writeFile("PersistentIrConstructor.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { writeFile("PersistentIrConstructor.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") {
lines( lines(
@@ -57,7 +56,6 @@ internal fun PersistentIrGenerator.generateConstructor() {
bodyField.toBody(), bodyField.toBody(),
metadataField.toPersistentField(+"null"), metadataField.toPersistentField(+"null"),
visibilityField.toPersistentField(+"visibility"), visibilityField.toPersistentField(+"visibility"),
isExternalField.toPersistentField(+"isExternal"),
descriptor(ClassConstructorDescriptor) descriptor(ClassConstructorDescriptor)
), ),
id, id,
@@ -75,7 +73,6 @@ internal fun PersistentIrGenerator.generateConstructor() {
visibilityField, visibilityField,
typeParametersField, typeParametersField,
valueParametersField, valueParametersField,
isExternalField,
)() )()
}) })
} }
@@ -10,7 +10,6 @@ internal fun PersistentIrGenerator.generateField() {
val correspondingPropertySymbolField = Field("correspondingPropertySymbol", IrPropertySymbol + "?") val correspondingPropertySymbolField = Field("correspondingPropertySymbol", IrPropertySymbol + "?")
val metadataField = Field("metadata", MetadataSource + "?") val metadataField = Field("metadata", MetadataSource + "?")
val typeField = Field("type", IrType) val typeField = Field("type", IrType)
val isExternalField = Field("isExternal", +"Boolean", notEq = "!=")
writeFile("PersistentIrField.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { writeFile("PersistentIrField.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") {
lines( lines(
@@ -37,7 +36,6 @@ internal fun PersistentIrGenerator.generateField() {
correspondingPropertySymbolField.toPersistentField(+"null"), correspondingPropertySymbolField.toPersistentField(+"null"),
metadataField.toPersistentField(+"null"), metadataField.toPersistentField(+"null"),
typeField.toPersistentField(+"type"), typeField.toPersistentField(+"type"),
isExternalField.toPersistentField(+"isExternal"),
), ),
id, id,
)() )()
@@ -50,7 +48,6 @@ internal fun PersistentIrGenerator.generateField() {
initializerField, initializerField,
correspondingPropertySymbolField, correspondingPropertySymbolField,
metadataField, metadataField,
isExternalField,
)() )()
}) })
} }
@@ -18,7 +18,6 @@ internal fun PersistentIrGenerator.generateFunction() {
val overriddenSymbolsField = Field("overriddenSymbols", +"List<" + irSymbol("IrSimpleFunctionSymbol") + ">") val overriddenSymbolsField = Field("overriddenSymbols", +"List<" + irSymbol("IrSimpleFunctionSymbol") + ">")
val attributeOwnerIdField = Field("attributeOwnerId", IrAttributeContainer) val attributeOwnerIdField = Field("attributeOwnerId", IrAttributeContainer)
val correspondingPropertySymbolField = Field("correspondingPropertySymbol", IrPropertySymbol + "?") val correspondingPropertySymbolField = Field("correspondingPropertySymbol", IrPropertySymbol + "?")
val isExternalField = Field("isExternal", +"Boolean", notEq = "!=")
writeFile("PersistentIrFunctionCommon.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { writeFile("PersistentIrFunctionCommon.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") {
lines( lines(
@@ -74,7 +73,6 @@ internal fun PersistentIrGenerator.generateFunction() {
attributeOwnerIdField.toPersistentField(+"this"), attributeOwnerIdField.toPersistentField(+"this"),
), ),
correspondingPropertySymbolField.toPersistentField(+"null"), correspondingPropertySymbolField.toPersistentField(+"null"),
isExternalField.toPersistentField(+"isExternal")
), ),
id, id,
)() )()
@@ -94,7 +92,6 @@ internal fun PersistentIrGenerator.generateFunction() {
correspondingPropertySymbolField, correspondingPropertySymbolField,
overriddenSymbolsField, overriddenSymbolsField,
attributeOwnerIdField, attributeOwnerIdField,
isExternalField,
)() )()
}) })
} }
@@ -70,7 +70,7 @@ internal object PersistentIrGenerator {
val isCompanion = +"override val isCompanion: Boolean = false" val isCompanion = +"override val isCompanion: Boolean = false"
val isInner = +"override val isInner: Boolean = false" val isInner = +"override val isInner: Boolean = false"
val isData = +"override val isData: Boolean = false" val isData = +"override val isData: Boolean = false"
val isExternal = +"isExternal: Boolean" val isExternal = +"override val isExternal: Boolean"
val isFinal = +"override val isFinal: Boolean" val isFinal = +"override val isFinal: Boolean"
val isInline = +"override val isInline: Boolean" val isInline = +"override val isInline: Boolean"
val isExpect = +"override val isExpect: Boolean" val isExpect = +"override val isExpect: Boolean"
@@ -11,7 +11,6 @@ internal fun PersistentIrGenerator.generateProperty() {
val setterField = Field("setter", irDeclaration("IrSimpleFunction") + "?") val setterField = Field("setter", irDeclaration("IrSimpleFunction") + "?")
val metadataField = Field("metadata", MetadataSource + "?") val metadataField = Field("metadata", MetadataSource + "?")
val attributeOwnerIdField = Field("attributeOwnerId", IrAttributeContainer) val attributeOwnerIdField = Field("attributeOwnerId", IrAttributeContainer)
val isExternalField = Field("isExternal", +"Boolean", notEq = "!=")
writeFile("PersistentIrPropertyCommon.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { writeFile("PersistentIrPropertyCommon.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") {
lines( lines(
@@ -42,7 +41,6 @@ internal fun PersistentIrGenerator.generateProperty() {
+"@Suppress(\"LeakingThis\")", +"@Suppress(\"LeakingThis\")",
attributeOwnerIdField.toPersistentField(+"this"), attributeOwnerIdField.toPersistentField(+"this"),
), ),
isExternalField.toPersistentField(+"isExternal"),
), ),
id, id,
)() )()
@@ -56,7 +54,6 @@ internal fun PersistentIrGenerator.generateProperty() {
setterField, setterField,
metadataField, metadataField,
attributeOwnerIdField, attributeOwnerIdField,
isExternalField,
)() )()
}) })
} }
@@ -61,7 +61,7 @@ interface IrDeclarationWithName : IrDeclaration {
} }
interface IrPossiblyExternalDeclaration : IrDeclarationWithName { interface IrPossiblyExternalDeclaration : IrDeclarationWithName {
var isExternal: Boolean val isExternal: Boolean
} }
interface IrOverridableMember : IrDeclarationWithVisibility, IrDeclarationWithName, IrSymbolOwner { interface IrOverridableMember : IrDeclarationWithVisibility, IrDeclarationWithName, IrSymbolOwner {
@@ -32,7 +32,7 @@ class IrLazyClass(
override val isCompanion: Boolean, override val isCompanion: Boolean,
override val isInner: Boolean, override val isInner: Boolean,
override val isData: Boolean, override val isData: Boolean,
override var isExternal: Boolean, override val isExternal: Boolean,
override val isInline: Boolean, override val isInline: Boolean,
override val isExpect: Boolean, override val isExpect: Boolean,
override val isFun: Boolean, override val isFun: Boolean,
@@ -30,7 +30,7 @@ class IrLazyConstructor(
override val name: Name, override val name: Name,
override var visibility: DescriptorVisibility, override var visibility: DescriptorVisibility,
override val isInline: Boolean, override val isInline: Boolean,
override var isExternal: Boolean, override val isExternal: Boolean,
override val isPrimary: Boolean, override val isPrimary: Boolean,
override val isExpect: Boolean, override val isExpect: Boolean,
override val stubGenerator: DeclarationStubGenerator, override val stubGenerator: DeclarationStubGenerator,
@@ -32,7 +32,7 @@ class IrLazyField(
override val name: Name, override val name: Name,
override var visibility: DescriptorVisibility, override var visibility: DescriptorVisibility,
override val isFinal: Boolean, override val isFinal: Boolean,
override var isExternal: Boolean, override val isExternal: Boolean,
override val isStatic: Boolean, override val isStatic: Boolean,
override val stubGenerator: DeclarationStubGenerator, override val stubGenerator: DeclarationStubGenerator,
override val typeTranslator: TypeTranslator, override val typeTranslator: TypeTranslator,
@@ -34,7 +34,7 @@ class IrLazyFunction(
override var visibility: DescriptorVisibility, override var visibility: DescriptorVisibility,
override val modality: Modality, override val modality: Modality,
override val isInline: Boolean, override val isInline: Boolean,
override var isExternal: Boolean, override val isExternal: Boolean,
override val isTailrec: Boolean, override val isTailrec: Boolean,
override val isSuspend: Boolean, override val isSuspend: Boolean,
override val isExpect: Boolean, override val isExpect: Boolean,
@@ -32,7 +32,7 @@ class IrLazyProperty(
override val isConst: Boolean, override val isConst: Boolean,
override val isLateinit: Boolean, override val isLateinit: Boolean,
override val isDelegated: Boolean, override val isDelegated: Boolean,
override var isExternal: Boolean, override val isExternal: Boolean,
override val isExpect: Boolean, override val isExpect: Boolean,
override val isFakeOverride: Boolean, override val isFakeOverride: Boolean,
override val stubGenerator: DeclarationStubGenerator, override val stubGenerator: DeclarationStubGenerator,
@@ -634,22 +634,21 @@ class IrDeclarationDeserializer(
flags.isFakeOverride flags.isFakeOverride
) )
}.apply { }.apply {
if (proto.hasGetter()) { withExternalValue(isExternal) {
getter = deserializeIrFunction(proto.getter).also { if (proto.hasGetter()) {
it.correspondingPropertySymbol = symbol getter = deserializeIrFunction(proto.getter).also {
it.isExternal = this.isExternal it.correspondingPropertySymbol = symbol
}
} }
} if (proto.hasSetter()) {
if (proto.hasSetter()) { setter = deserializeIrFunction(proto.setter).also {
setter = deserializeIrFunction(proto.setter).also { it.correspondingPropertySymbol = symbol
it.correspondingPropertySymbol = symbol }
it.isExternal = this.isExternal
} }
} if (proto.hasBackingField()) {
if (proto.hasBackingField()) { backingField = deserializeIrField(proto.backingField).also {
backingField = deserializeIrField(proto.backingField).also { it.correspondingPropertySymbol = symbol
it.correspondingPropertySymbol = symbol }
it.isExternal = this.isExternal
} }
} }
} }