[IR] Make isExternal mutable and accessible via common interface
JS IR: Mark all effectively external declarations as external to access it directly instead of computing it every time
This commit is contained in:
+11
-1
@@ -39,7 +39,7 @@ internal class PersistentIrClass(
|
||||
override val isCompanion: Boolean = false,
|
||||
override val isInner: Boolean = false,
|
||||
override val isData: Boolean = false,
|
||||
override val isExternal: Boolean = false,
|
||||
isExternal: Boolean = false,
|
||||
override val isInline: Boolean = false,
|
||||
override val isExpect: Boolean = false,
|
||||
override val isFun: Boolean = false,
|
||||
@@ -142,6 +142,16 @@ 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 attributeOwnerId: IrAttributeContainer
|
||||
|
||||
+11
-1
@@ -40,7 +40,7 @@ internal class PersistentIrConstructor(
|
||||
visibility: DescriptorVisibility,
|
||||
returnType: IrType,
|
||||
override val isInline: Boolean,
|
||||
override val isExternal: Boolean,
|
||||
isExternal: Boolean,
|
||||
override val isPrimary: Boolean,
|
||||
override val isExpect: Boolean,
|
||||
override val containerSource: DeserializedContainerSource?
|
||||
@@ -153,6 +153,16 @@ internal class PersistentIrConstructor(
|
||||
}
|
||||
}
|
||||
|
||||
override var isExternalField: Boolean = isExternal
|
||||
|
||||
override var isExternal: Boolean
|
||||
get() = getCarrier().isExternalField
|
||||
set(v) {
|
||||
if (isExternal != v) {
|
||||
setCarrier().isExternalField = v
|
||||
}
|
||||
}
|
||||
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
override val descriptor: ClassConstructorDescriptor
|
||||
get() = symbol.descriptor
|
||||
|
||||
+11
-1
@@ -38,7 +38,7 @@ internal class PersistentIrField(
|
||||
type: IrType,
|
||||
override var visibility: DescriptorVisibility,
|
||||
override val isFinal: Boolean,
|
||||
override val isExternal: Boolean,
|
||||
isExternal: Boolean,
|
||||
override val isStatic: Boolean
|
||||
) : IrField(),
|
||||
PersistentIrDeclarationBase<FieldCarrier>,
|
||||
@@ -104,4 +104,14 @@ internal class PersistentIrField(
|
||||
setCarrier().typeField = v
|
||||
}
|
||||
}
|
||||
|
||||
override var isExternalField: Boolean = isExternal
|
||||
|
||||
override var isExternal: Boolean
|
||||
get() = getCarrier().isExternalField
|
||||
set(v) {
|
||||
if (isExternal != v) {
|
||||
setCarrier().isExternalField = v
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+11
-1
@@ -31,7 +31,7 @@ internal abstract class PersistentIrFunctionCommon(
|
||||
visibility: DescriptorVisibility,
|
||||
returnType: IrType,
|
||||
override val isInline: Boolean,
|
||||
override val isExternal: Boolean,
|
||||
isExternal: Boolean,
|
||||
override val isTailrec: Boolean,
|
||||
override val isSuspend: Boolean,
|
||||
override val isOperator: Boolean,
|
||||
@@ -173,6 +173,16 @@ internal abstract class PersistentIrFunctionCommon(
|
||||
setCarrier().correspondingPropertySymbolField = v
|
||||
}
|
||||
}
|
||||
|
||||
override var isExternalField: Boolean = isExternal
|
||||
|
||||
override var isExternal: Boolean
|
||||
get() = getCarrier().isExternalField
|
||||
set(v) {
|
||||
if (isExternal != v) {
|
||||
setCarrier().isExternalField = v
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal class PersistentIrFunction(
|
||||
|
||||
+11
-1
@@ -39,7 +39,7 @@ internal abstract class PersistentIrPropertyCommon(
|
||||
override val isConst: Boolean,
|
||||
override val isLateinit: Boolean,
|
||||
override val isDelegated: Boolean,
|
||||
override val isExternal: Boolean,
|
||||
isExternal: Boolean,
|
||||
override val isExpect: Boolean,
|
||||
override val containerSource: DeserializedContainerSource?,
|
||||
) : IrProperty(),
|
||||
@@ -106,6 +106,16 @@ internal abstract class PersistentIrPropertyCommon(
|
||||
setCarrier().attributeOwnerIdField = v
|
||||
}
|
||||
}
|
||||
|
||||
override var isExternalField: Boolean = isExternal
|
||||
|
||||
override var isExternal: Boolean
|
||||
get() = getCarrier().isExternalField
|
||||
set(v) {
|
||||
if (isExternal != v) {
|
||||
setCarrier().isExternalField = v
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal class PersistentIrProperty(
|
||||
|
||||
+5
-2
@@ -16,6 +16,7 @@ internal interface ClassCarrier : DeclarationCarrier {
|
||||
var metadataField: MetadataSource?
|
||||
var visibilityField: DescriptorVisibility
|
||||
var modalityField: Modality
|
||||
var isExternalField: Boolean
|
||||
var attributeOwnerIdField: IrAttributeContainer
|
||||
var typeParametersField: List<IrTypeParameter>
|
||||
var superTypesField: List<IrType>
|
||||
@@ -32,7 +33,8 @@ internal interface ClassCarrier : DeclarationCarrier {
|
||||
modalityField,
|
||||
attributeOwnerIdField,
|
||||
typeParametersField,
|
||||
superTypesField
|
||||
superTypesField,
|
||||
isExternalField
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -48,5 +50,6 @@ internal class ClassCarrierImpl(
|
||||
override var modalityField: Modality,
|
||||
override var attributeOwnerIdField: IrAttributeContainer,
|
||||
override var typeParametersField: List<IrTypeParameter>,
|
||||
override var superTypesField: List<IrType>
|
||||
override var superTypesField: List<IrType>,
|
||||
override var isExternalField: Boolean
|
||||
) : ClassCarrier
|
||||
|
||||
+4
-2
@@ -25,7 +25,8 @@ internal interface ConstructorCarrier : FunctionBaseCarrier {
|
||||
metadataField,
|
||||
visibilityField,
|
||||
typeParametersField,
|
||||
valueParametersField
|
||||
valueParametersField,
|
||||
isExternalField,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -42,5 +43,6 @@ internal class ConstructorCarrierImpl(
|
||||
override var metadataField: MetadataSource?,
|
||||
override var visibilityField: DescriptorVisibility,
|
||||
override var typeParametersField: List<IrTypeParameter>,
|
||||
override var valueParametersField: List<IrValueParameter>
|
||||
override var valueParametersField: List<IrValueParameter>,
|
||||
override var isExternalField: Boolean,
|
||||
) : ConstructorCarrier
|
||||
|
||||
+5
-2
@@ -18,6 +18,7 @@ internal interface FieldCarrier : DeclarationCarrier {
|
||||
var initializerField: IrExpressionBody?
|
||||
var correspondingPropertySymbolField: IrPropertySymbol?
|
||||
var metadataField: MetadataSource?
|
||||
var isExternalField: Boolean
|
||||
|
||||
override fun clone(): FieldCarrier {
|
||||
return FieldCarrierImpl(
|
||||
@@ -28,7 +29,8 @@ internal interface FieldCarrier : DeclarationCarrier {
|
||||
typeField,
|
||||
initializerField,
|
||||
correspondingPropertySymbolField,
|
||||
metadataField
|
||||
metadataField,
|
||||
isExternalField,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -41,5 +43,6 @@ internal class FieldCarrierImpl(
|
||||
override var typeField: IrType,
|
||||
override var initializerField: IrExpressionBody?,
|
||||
override var correspondingPropertySymbolField: IrPropertySymbol?,
|
||||
override var metadataField: MetadataSource?
|
||||
override var metadataField: MetadataSource?,
|
||||
override var isExternalField: Boolean
|
||||
) : FieldCarrier
|
||||
|
||||
+1
@@ -21,4 +21,5 @@ internal interface FunctionBaseCarrier : DeclarationCarrier {
|
||||
var visibilityField: DescriptorVisibility
|
||||
var typeParametersField: List<IrTypeParameter>
|
||||
var valueParametersField: List<IrValueParameter>
|
||||
var isExternalField: Boolean
|
||||
}
|
||||
|
||||
+4
-2
@@ -34,7 +34,8 @@ internal interface FunctionCarrier : FunctionBaseCarrier {
|
||||
valueParametersField,
|
||||
correspondingPropertySymbolField,
|
||||
overriddenSymbolsField,
|
||||
attributeOwnerIdField
|
||||
attributeOwnerIdField,
|
||||
isExternalField,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -54,5 +55,6 @@ internal class FunctionCarrierImpl(
|
||||
override var valueParametersField: List<IrValueParameter>,
|
||||
override var correspondingPropertySymbolField: IrPropertySymbol?,
|
||||
override var overriddenSymbolsField: List<IrSimpleFunctionSymbol>,
|
||||
override var attributeOwnerIdField: IrAttributeContainer
|
||||
override var attributeOwnerIdField: IrAttributeContainer,
|
||||
override var isExternalField: Boolean,
|
||||
) : FunctionCarrier
|
||||
|
||||
+4
-1
@@ -14,6 +14,7 @@ internal interface PropertyCarrier : DeclarationCarrier {
|
||||
var setterField: IrSimpleFunction?
|
||||
var metadataField: MetadataSource?
|
||||
var attributeOwnerIdField: IrAttributeContainer
|
||||
var isExternalField: Boolean
|
||||
|
||||
override fun clone(): PropertyCarrier {
|
||||
return PropertyCarrierImpl(
|
||||
@@ -26,6 +27,7 @@ internal interface PropertyCarrier : DeclarationCarrier {
|
||||
setterField,
|
||||
metadataField,
|
||||
attributeOwnerIdField,
|
||||
isExternalField,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -39,5 +41,6 @@ internal class PropertyCarrierImpl(
|
||||
override var getterField: IrSimpleFunction?,
|
||||
override var setterField: IrSimpleFunction?,
|
||||
override var metadataField: MetadataSource?,
|
||||
override var attributeOwnerIdField: IrAttributeContainer
|
||||
override var attributeOwnerIdField: IrAttributeContainer,
|
||||
override var isExternalField: Boolean
|
||||
) : PropertyCarrier
|
||||
|
||||
Reference in New Issue
Block a user