JS IR: make PIR Carriers immutable

This commit is contained in:
Anton Bannykh
2021-02-02 16:43:59 +03:00
committed by TeamCityServer
parent 93fb7597e9
commit 027f656790
26 changed files with 279 additions and 215 deletions
@@ -56,7 +56,8 @@ internal class PersistentIrAnonymousInitializer(
if (v is PersistentIrBodyBase<*>) {
v.container = this
}
setCarrier().bodyField = v
setCarrier()
bodyField = v
}
}
}
@@ -76,7 +76,8 @@ internal class PersistentIrClass(
get() = getCarrier().visibilityField
set(v) {
if (visibility !== v) {
setCarrier().visibilityField = v
setCarrier()
visibilityField = v
}
}
@@ -86,7 +87,8 @@ internal class PersistentIrClass(
get() = getCarrier().thisReceiverField
set(v) {
if (thisReceiver !== v) {
setCarrier().thisReceiverField = v
setCarrier()
thisReceiverField = v
}
}
@@ -112,7 +114,8 @@ internal class PersistentIrClass(
get() = getCarrier().typeParametersField
set(v) {
if (typeParameters !== v) {
setCarrier().typeParametersField = v
setCarrier()
typeParametersField = v
}
}
@@ -122,7 +125,8 @@ internal class PersistentIrClass(
get() = getCarrier().superTypesField
set(v) {
if (superTypes !== v) {
setCarrier().superTypesField = v
setCarrier()
superTypesField = v
}
}
@@ -132,7 +136,8 @@ internal class PersistentIrClass(
get() = getCarrier().metadataField
set(v) {
if (metadata !== v) {
setCarrier().metadataField = v
setCarrier()
metadataField = v
}
}
@@ -142,7 +147,8 @@ internal class PersistentIrClass(
get() = getCarrier().modalityField
set(v) {
if (modality !== v) {
setCarrier().modalityField = v
setCarrier()
modalityField = v
}
}
@@ -152,7 +158,8 @@ internal class PersistentIrClass(
get() = getCarrier().isExternalField
set(v) {
if (isExternal != v) {
setCarrier().isExternalField = v
setCarrier()
isExternalField = v
}
}
@@ -162,7 +169,8 @@ internal class PersistentIrClass(
get() = getCarrier().attributeOwnerIdField
set(v) {
if (attributeOwnerId !== v) {
setCarrier().attributeOwnerIdField = v
setCarrier()
attributeOwnerIdField = v
}
}
}
@@ -65,7 +65,8 @@ internal class PersistentIrConstructor(
get() = getCarrier().returnTypeFieldField
set(v) {
if (returnTypeField !== v) {
setCarrier().returnTypeFieldField = v
setCarrier()
returnTypeFieldField = v
}
}
@@ -83,7 +84,8 @@ internal class PersistentIrConstructor(
get() = getCarrier().typeParametersField
set(v) {
if (typeParameters !== v) {
setCarrier().typeParametersField = v
setCarrier()
typeParametersField = v
}
}
@@ -93,7 +95,8 @@ internal class PersistentIrConstructor(
get() = getCarrier().dispatchReceiverParameterField
set(v) {
if (dispatchReceiverParameter !== v) {
setCarrier().dispatchReceiverParameterField = v
setCarrier()
dispatchReceiverParameterField = v
}
}
@@ -103,7 +106,8 @@ internal class PersistentIrConstructor(
get() = getCarrier().extensionReceiverParameterField
set(v) {
if (extensionReceiverParameter !== v) {
setCarrier().extensionReceiverParameterField = v
setCarrier()
extensionReceiverParameterField = v
}
}
@@ -113,7 +117,8 @@ internal class PersistentIrConstructor(
get() = getCarrier().valueParametersField
set(v) {
if (valueParameters !== v) {
setCarrier().valueParametersField = v
setCarrier()
valueParametersField = v
}
}
@@ -126,7 +131,8 @@ internal class PersistentIrConstructor(
if (v is PersistentIrBodyBase<*>) {
v.container = this
}
setCarrier().bodyField = v
setCarrier()
bodyField = v
}
}
@@ -136,7 +142,8 @@ internal class PersistentIrConstructor(
get() = getCarrier().metadataField
set(v) {
if (metadata !== v) {
setCarrier().metadataField = v
setCarrier()
metadataField = v
}
}
@@ -146,7 +153,8 @@ internal class PersistentIrConstructor(
get() = getCarrier().visibilityField
set(v) {
if (visibility !== v) {
setCarrier().visibilityField = v
setCarrier()
visibilityField = v
}
}
@@ -156,7 +164,8 @@ internal class PersistentIrConstructor(
get() = getCarrier().isExternalField
set(v) {
if (isExternal != v) {
setCarrier().isExternalField = v
setCarrier()
isExternalField = v
}
}
@@ -55,7 +55,8 @@ internal class PersistentIrEnumEntry(
get() = getCarrier().correspondingClassField
set(v) {
if (correspondingClass !== v) {
setCarrier().correspondingClassField = v
setCarrier()
correspondingClassField = v
}
}
@@ -68,7 +69,8 @@ internal class PersistentIrEnumEntry(
if (v is PersistentIrBodyBase<*>) {
v.container = this
}
setCarrier().initializerExpressionField = v
setCarrier()
initializerExpressionField = v
}
}
}
@@ -66,7 +66,8 @@ internal class PersistentIrField(
if (v is PersistentIrBodyBase<*>) {
v.container = this
}
setCarrier().initializerField = v
setCarrier()
initializerField = v
}
}
@@ -76,7 +77,8 @@ internal class PersistentIrField(
get() = getCarrier().correspondingPropertySymbolField
set(v) {
if (correspondingPropertySymbol !== v) {
setCarrier().correspondingPropertySymbolField = v
setCarrier()
correspondingPropertySymbolField = v
}
}
@@ -86,7 +88,8 @@ internal class PersistentIrField(
get() = getCarrier().metadataField
set(v) {
if (metadata !== v) {
setCarrier().metadataField = v
setCarrier()
metadataField = v
}
}
@@ -96,7 +99,8 @@ internal class PersistentIrField(
get() = getCarrier().typeField
set(v) {
if (type !== v) {
setCarrier().typeField = v
setCarrier()
typeField = v
}
}
@@ -106,7 +110,8 @@ internal class PersistentIrField(
get() = getCarrier().isExternalField
set(v) {
if (isExternal != v) {
setCarrier().isExternalField = v
setCarrier()
isExternalField = v
}
}
}
@@ -63,7 +63,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().returnTypeFieldField
set(v) {
if (returnTypeField !== v) {
setCarrier().returnTypeFieldField = v
setCarrier()
returnTypeFieldField = v
}
}
@@ -81,7 +82,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().typeParametersField
set(v) {
if (typeParameters !== v) {
setCarrier().typeParametersField = v
setCarrier()
typeParametersField = v
}
}
@@ -91,7 +93,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().dispatchReceiverParameterField
set(v) {
if (dispatchReceiverParameter !== v) {
setCarrier().dispatchReceiverParameterField = v
setCarrier()
dispatchReceiverParameterField = v
}
}
@@ -101,7 +104,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().extensionReceiverParameterField
set(v) {
if (extensionReceiverParameter !== v) {
setCarrier().extensionReceiverParameterField = v
setCarrier()
extensionReceiverParameterField = v
}
}
@@ -111,7 +115,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().valueParametersField
set(v) {
if (valueParameters !== v) {
setCarrier().valueParametersField = v
setCarrier()
valueParametersField = v
}
}
@@ -124,7 +129,8 @@ internal abstract class PersistentIrFunctionCommon(
if (v is PersistentIrBodyBase<*>) {
v.container = this
}
setCarrier().bodyField = v
setCarrier()
bodyField = v
}
}
@@ -134,7 +140,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().metadataField
set(v) {
if (metadata !== v) {
setCarrier().metadataField = v
setCarrier()
metadataField = v
}
}
@@ -144,7 +151,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().visibilityField
set(v) {
if (visibility !== v) {
setCarrier().visibilityField = v
setCarrier()
visibilityField = v
}
}
@@ -154,7 +162,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().overriddenSymbolsField
set(v) {
if (overriddenSymbols !== v) {
setCarrier().overriddenSymbolsField = v
setCarrier()
overriddenSymbolsField = v
}
}
@@ -165,7 +174,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().attributeOwnerIdField
set(v) {
if (attributeOwnerId !== v) {
setCarrier().attributeOwnerIdField = v
setCarrier()
attributeOwnerIdField = v
}
}
@@ -175,7 +185,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().correspondingPropertySymbolField
set(v) {
if (correspondingPropertySymbol !== v) {
setCarrier().correspondingPropertySymbolField = v
setCarrier()
correspondingPropertySymbolField = v
}
}
@@ -185,7 +196,8 @@ internal abstract class PersistentIrFunctionCommon(
get() = getCarrier().isExternalField
set(v) {
if (isExternal != v) {
setCarrier().isExternalField = v
setCarrier()
isExternalField = v
}
}
}
@@ -60,7 +60,8 @@ internal class PersistentIrLocalDelegatedProperty(
get() = getCarrier().typeField
set(v) {
if (type !== v) {
setCarrier().typeField = v
setCarrier()
typeField = v
}
}
@@ -70,7 +71,8 @@ internal class PersistentIrLocalDelegatedProperty(
get() = getCarrier().delegateField!!
set(v) {
if (getCarrier().delegateField !== v) {
setCarrier().delegateField = v
setCarrier()
delegateField = v
}
}
@@ -80,7 +82,8 @@ internal class PersistentIrLocalDelegatedProperty(
get() = getCarrier().getterField!!
set(v) {
if (getCarrier().getterField !== v) {
setCarrier().getterField = v
setCarrier()
getterField = v
}
}
@@ -90,7 +93,8 @@ internal class PersistentIrLocalDelegatedProperty(
get() = getCarrier().setterField
set(v) {
if (setter !== v) {
setCarrier().setterField = v
setCarrier()
setterField = v
}
}
@@ -100,7 +104,8 @@ internal class PersistentIrLocalDelegatedProperty(
get() = getCarrier().metadataField
set(v) {
if (metadata !== v) {
setCarrier().metadataField = v
setCarrier()
metadataField = v
}
}
}
@@ -55,7 +55,8 @@ internal abstract class PersistentIrPropertyCommon(
get() = getCarrier().backingFieldField
set(v) {
if (backingField !== v) {
setCarrier().backingFieldField = v
setCarrier()
backingFieldField = v
}
}
@@ -65,7 +66,8 @@ internal abstract class PersistentIrPropertyCommon(
get() = getCarrier().getterField
set(v) {
if (getter !== v) {
setCarrier().getterField = v
setCarrier()
getterField = v
}
}
@@ -75,7 +77,8 @@ internal abstract class PersistentIrPropertyCommon(
get() = getCarrier().setterField
set(v) {
if (setter !== v) {
setCarrier().setterField = v
setCarrier()
setterField = v
}
}
@@ -85,7 +88,8 @@ internal abstract class PersistentIrPropertyCommon(
get() = getCarrier().metadataField
set(v) {
if (metadata !== v) {
setCarrier().metadataField = v
setCarrier()
metadataField = v
}
}
@@ -96,7 +100,8 @@ internal abstract class PersistentIrPropertyCommon(
get() = getCarrier().attributeOwnerIdField
set(v) {
if (attributeOwnerId !== v) {
setCarrier().attributeOwnerIdField = v
setCarrier()
attributeOwnerIdField = v
}
}
@@ -106,7 +111,8 @@ internal abstract class PersistentIrPropertyCommon(
get() = getCarrier().isExternalField
set(v) {
if (isExternal != v) {
setCarrier().isExternalField = v
setCarrier()
isExternalField = v
}
}
}
@@ -59,7 +59,8 @@ internal class PersistentIrTypeAlias(
get() = getCarrier().typeParametersField
set(v) {
if (typeParameters !== v) {
setCarrier().typeParametersField = v
setCarrier()
typeParametersField = v
}
}
@@ -69,7 +70,8 @@ internal class PersistentIrTypeAlias(
get() = getCarrier().expandedTypeField
set(v) {
if (expandedType !== v) {
setCarrier().expandedTypeField = v
setCarrier()
expandedTypeField = v
}
}
}
@@ -58,7 +58,8 @@ internal class PersistentIrTypeParameter(
get() = getCarrier().superTypesField
set(v) {
if (superTypes !== v) {
setCarrier().superTypesField = v
setCarrier()
superTypesField = v
}
}
}
@@ -65,7 +65,8 @@ internal class PersistentIrValueParameter(
if (v is PersistentIrBodyBase<*>) {
v.container = this
}
setCarrier().defaultValueField = v
setCarrier()
defaultValueField = v
}
}
@@ -75,7 +76,8 @@ internal class PersistentIrValueParameter(
get() = getCarrier().typeField
set(v) {
if (type !== v) {
setCarrier().typeField = v
setCarrier()
typeField = v
}
}
@@ -85,7 +87,8 @@ internal class PersistentIrValueParameter(
get() = getCarrier().varargElementTypeField
set(v) {
if (varargElementType !== v) {
setCarrier().varargElementTypeField = v
setCarrier()
varargElementTypeField = v
}
}
}
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface AnonymousInitializerCarrier : DeclarationCarrier{
var bodyField: IrBlockBody?
val bodyField: IrBlockBody?
override fun clone(): AnonymousInitializerCarrier {
return AnonymousInitializerCarrierImpl(
@@ -28,8 +28,8 @@ internal interface AnonymousInitializerCarrier : DeclarationCarrier{
internal class AnonymousInitializerCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var bodyField: IrBlockBody?
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val bodyField: IrBlockBody?
) : AnonymousInitializerCarrier
@@ -19,14 +19,14 @@ import org.jetbrains.kotlin.ir.types.IrType
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface ClassCarrier : DeclarationCarrier{
var thisReceiverField: IrValueParameter?
var metadataField: MetadataSource?
var visibilityField: DescriptorVisibility
var modalityField: Modality
var attributeOwnerIdField: IrAttributeContainer
var typeParametersField: List<IrTypeParameter>
var superTypesField: List<IrType>
var isExternalField: Boolean
val thisReceiverField: IrValueParameter?
val metadataField: MetadataSource?
val visibilityField: DescriptorVisibility
val modalityField: Modality
val attributeOwnerIdField: IrAttributeContainer
val typeParametersField: List<IrTypeParameter>
val superTypesField: List<IrType>
val isExternalField: Boolean
override fun clone(): ClassCarrier {
return ClassCarrierImpl(
@@ -48,15 +48,15 @@ internal interface ClassCarrier : DeclarationCarrier{
internal class ClassCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var thisReceiverField: IrValueParameter?,
override var metadataField: MetadataSource?,
override var visibilityField: DescriptorVisibility,
override var modalityField: Modality,
override var attributeOwnerIdField: IrAttributeContainer,
override var typeParametersField: List<IrTypeParameter>,
override var superTypesField: List<IrType>,
override var isExternalField: Boolean
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val thisReceiverField: IrValueParameter?,
override val metadataField: MetadataSource?,
override val visibilityField: DescriptorVisibility,
override val modalityField: Modality,
override val attributeOwnerIdField: IrAttributeContainer,
override val typeParametersField: List<IrTypeParameter>,
override val superTypesField: List<IrType>,
override val isExternalField: Boolean
) : ClassCarrier
@@ -18,15 +18,15 @@ import org.jetbrains.kotlin.ir.types.IrType
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface ConstructorCarrier : DeclarationCarrier{
var returnTypeFieldField: IrType
var dispatchReceiverParameterField: IrValueParameter?
var extensionReceiverParameterField: IrValueParameter?
var bodyField: IrBody?
var metadataField: MetadataSource?
var visibilityField: DescriptorVisibility
var typeParametersField: List<IrTypeParameter>
var valueParametersField: List<IrValueParameter>
var isExternalField: Boolean
val returnTypeFieldField: IrType
val dispatchReceiverParameterField: IrValueParameter?
val extensionReceiverParameterField: IrValueParameter?
val bodyField: IrBody?
val metadataField: MetadataSource?
val visibilityField: DescriptorVisibility
val typeParametersField: List<IrTypeParameter>
val valueParametersField: List<IrValueParameter>
val isExternalField: Boolean
override fun clone(): ConstructorCarrier {
return ConstructorCarrierImpl(
@@ -49,16 +49,16 @@ internal interface ConstructorCarrier : DeclarationCarrier{
internal class ConstructorCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var returnTypeFieldField: IrType,
override var dispatchReceiverParameterField: IrValueParameter?,
override var extensionReceiverParameterField: IrValueParameter?,
override var bodyField: IrBody?,
override var metadataField: MetadataSource?,
override var visibilityField: DescriptorVisibility,
override var typeParametersField: List<IrTypeParameter>,
override var valueParametersField: List<IrValueParameter>,
override var isExternalField: Boolean
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val returnTypeFieldField: IrType,
override val dispatchReceiverParameterField: IrValueParameter?,
override val extensionReceiverParameterField: IrValueParameter?,
override val bodyField: IrBody?,
override val metadataField: MetadataSource?,
override val visibilityField: DescriptorVisibility,
override val typeParametersField: List<IrTypeParameter>,
override val valueParametersField: List<IrValueParameter>,
override val isExternalField: Boolean
) : ConstructorCarrier
@@ -14,8 +14,8 @@ import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface EnumEntryCarrier : DeclarationCarrier{
var correspondingClassField: IrClass?
var initializerExpressionField: IrExpressionBody?
val correspondingClassField: IrClass?
val initializerExpressionField: IrExpressionBody?
override fun clone(): EnumEntryCarrier {
return EnumEntryCarrierImpl(
@@ -31,9 +31,9 @@ internal interface EnumEntryCarrier : DeclarationCarrier{
internal class EnumEntryCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var correspondingClassField: IrClass?,
override var initializerExpressionField: IrExpressionBody?
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val correspondingClassField: IrClass?,
override val initializerExpressionField: IrExpressionBody?
) : EnumEntryCarrier
@@ -25,7 +25,7 @@ internal interface ErrorDeclarationCarrier : DeclarationCarrier{
internal class ErrorDeclarationCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>
) : ErrorDeclarationCarrier
@@ -16,11 +16,11 @@ import org.jetbrains.kotlin.ir.types.IrType
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface FieldCarrier : DeclarationCarrier{
var typeField: IrType
var initializerField: IrExpressionBody?
var correspondingPropertySymbolField: IrPropertySymbol?
var metadataField: MetadataSource?
var isExternalField: Boolean
val typeField: IrType
val initializerField: IrExpressionBody?
val correspondingPropertySymbolField: IrPropertySymbol?
val metadataField: MetadataSource?
val isExternalField: Boolean
override fun clone(): FieldCarrier {
return FieldCarrierImpl(
@@ -39,12 +39,12 @@ internal interface FieldCarrier : DeclarationCarrier{
internal class FieldCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var typeField: IrType,
override var initializerField: IrExpressionBody?,
override var correspondingPropertySymbolField: IrPropertySymbol?,
override var metadataField: MetadataSource?,
override var isExternalField: Boolean
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val typeField: IrType,
override val initializerField: IrExpressionBody?,
override val correspondingPropertySymbolField: IrPropertySymbol?,
override val metadataField: MetadataSource?,
override val isExternalField: Boolean
) : FieldCarrier
@@ -21,18 +21,18 @@ import org.jetbrains.kotlin.ir.types.IrType
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface FunctionCarrier : DeclarationCarrier{
var returnTypeFieldField: IrType
var dispatchReceiverParameterField: IrValueParameter?
var extensionReceiverParameterField: IrValueParameter?
var bodyField: IrBody?
var metadataField: MetadataSource?
var visibilityField: DescriptorVisibility
var typeParametersField: List<IrTypeParameter>
var valueParametersField: List<IrValueParameter>
var correspondingPropertySymbolField: IrPropertySymbol?
var overriddenSymbolsField: List<IrSimpleFunctionSymbol>
var attributeOwnerIdField: IrAttributeContainer
var isExternalField: Boolean
val returnTypeFieldField: IrType
val dispatchReceiverParameterField: IrValueParameter?
val extensionReceiverParameterField: IrValueParameter?
val bodyField: IrBody?
val metadataField: MetadataSource?
val visibilityField: DescriptorVisibility
val typeParametersField: List<IrTypeParameter>
val valueParametersField: List<IrValueParameter>
val correspondingPropertySymbolField: IrPropertySymbol?
val overriddenSymbolsField: List<IrSimpleFunctionSymbol>
val attributeOwnerIdField: IrAttributeContainer
val isExternalField: Boolean
override fun clone(): FunctionCarrier {
return FunctionCarrierImpl(
@@ -58,19 +58,19 @@ internal interface FunctionCarrier : DeclarationCarrier{
internal class FunctionCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var returnTypeFieldField: IrType,
override var dispatchReceiverParameterField: IrValueParameter?,
override var extensionReceiverParameterField: IrValueParameter?,
override var bodyField: IrBody?,
override var metadataField: MetadataSource?,
override var visibilityField: DescriptorVisibility,
override var typeParametersField: List<IrTypeParameter>,
override var valueParametersField: List<IrValueParameter>,
override var correspondingPropertySymbolField: IrPropertySymbol?,
override var overriddenSymbolsField: List<IrSimpleFunctionSymbol>,
override var attributeOwnerIdField: IrAttributeContainer,
override var isExternalField: Boolean
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val returnTypeFieldField: IrType,
override val dispatchReceiverParameterField: IrValueParameter?,
override val extensionReceiverParameterField: IrValueParameter?,
override val bodyField: IrBody?,
override val metadataField: MetadataSource?,
override val visibilityField: DescriptorVisibility,
override val typeParametersField: List<IrTypeParameter>,
override val valueParametersField: List<IrValueParameter>,
override val correspondingPropertySymbolField: IrPropertySymbol?,
override val overriddenSymbolsField: List<IrSimpleFunctionSymbol>,
override val attributeOwnerIdField: IrAttributeContainer,
override val isExternalField: Boolean
) : FunctionCarrier
@@ -16,11 +16,11 @@ import org.jetbrains.kotlin.ir.types.IrType
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface LocalDelegatedPropertyCarrier : DeclarationCarrier{
var typeField: IrType
var delegateField: IrVariable?
var getterField: IrSimpleFunction?
var setterField: IrSimpleFunction?
var metadataField: MetadataSource?
val typeField: IrType
val delegateField: IrVariable?
val getterField: IrSimpleFunction?
val setterField: IrSimpleFunction?
val metadataField: MetadataSource?
override fun clone(): LocalDelegatedPropertyCarrier {
return LocalDelegatedPropertyCarrierImpl(
@@ -39,12 +39,12 @@ internal interface LocalDelegatedPropertyCarrier : DeclarationCarrier{
internal class LocalDelegatedPropertyCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var typeField: IrType,
override var delegateField: IrVariable?,
override var getterField: IrSimpleFunction?,
override var setterField: IrSimpleFunction?,
override var metadataField: MetadataSource?
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val typeField: IrType,
override val delegateField: IrVariable?,
override val getterField: IrSimpleFunction?,
override val setterField: IrSimpleFunction?,
override val metadataField: MetadataSource?
) : LocalDelegatedPropertyCarrier
@@ -16,12 +16,12 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface PropertyCarrier : DeclarationCarrier{
var backingFieldField: IrField?
var getterField: IrSimpleFunction?
var setterField: IrSimpleFunction?
var metadataField: MetadataSource?
var attributeOwnerIdField: IrAttributeContainer
var isExternalField: Boolean
val backingFieldField: IrField?
val getterField: IrSimpleFunction?
val setterField: IrSimpleFunction?
val metadataField: MetadataSource?
val attributeOwnerIdField: IrAttributeContainer
val isExternalField: Boolean
override fun clone(): PropertyCarrier {
return PropertyCarrierImpl(
@@ -41,13 +41,13 @@ internal interface PropertyCarrier : DeclarationCarrier{
internal class PropertyCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var backingFieldField: IrField?,
override var getterField: IrSimpleFunction?,
override var setterField: IrSimpleFunction?,
override var metadataField: MetadataSource?,
override var attributeOwnerIdField: IrAttributeContainer,
override var isExternalField: Boolean
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val backingFieldField: IrField?,
override val getterField: IrSimpleFunction?,
override val setterField: IrSimpleFunction?,
override val metadataField: MetadataSource?,
override val attributeOwnerIdField: IrAttributeContainer,
override val isExternalField: Boolean
) : PropertyCarrier
@@ -14,8 +14,8 @@ import org.jetbrains.kotlin.ir.types.IrType
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface TypeAliasCarrier : DeclarationCarrier{
var typeParametersField: List<IrTypeParameter>
var expandedTypeField: IrType
val typeParametersField: List<IrTypeParameter>
val expandedTypeField: IrType
override fun clone(): TypeAliasCarrier {
return TypeAliasCarrierImpl(
@@ -31,9 +31,9 @@ internal interface TypeAliasCarrier : DeclarationCarrier{
internal class TypeAliasCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var typeParametersField: List<IrTypeParameter>,
override var expandedTypeField: IrType
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val typeParametersField: List<IrTypeParameter>,
override val expandedTypeField: IrType
) : TypeAliasCarrier
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.ir.types.IrType
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface TypeParameterCarrier : DeclarationCarrier{
var superTypesField: List<IrType>
val superTypesField: List<IrType>
override fun clone(): TypeParameterCarrier {
return TypeParameterCarrierImpl(
@@ -28,8 +28,8 @@ internal interface TypeParameterCarrier : DeclarationCarrier{
internal class TypeParameterCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var superTypesField: List<IrType>
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val superTypesField: List<IrType>
) : TypeParameterCarrier
@@ -14,9 +14,9 @@ import org.jetbrains.kotlin.ir.types.IrType
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
internal interface ValueParameterCarrier : DeclarationCarrier{
var defaultValueField: IrExpressionBody?
var typeField: IrType
var varargElementTypeField: IrType?
val defaultValueField: IrExpressionBody?
val typeField: IrType
val varargElementTypeField: IrType?
override fun clone(): ValueParameterCarrier {
return ValueParameterCarrierImpl(
@@ -33,10 +33,10 @@ internal interface ValueParameterCarrier : DeclarationCarrier{
internal class ValueParameterCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List<IrConstructorCall>,
override var defaultValueField: IrExpressionBody?,
override var typeField: IrType,
override var varargElementTypeField: IrType?
override val parentField: IrDeclarationParent?,
override val originField: IrDeclarationOrigin,
override val annotationsField: List<IrConstructorCall>,
override val defaultValueField: IrExpressionBody?,
override val typeField: IrType,
override val varargElementTypeField: IrType?
) : ValueParameterCarrier
@@ -143,7 +143,8 @@ internal object PersistentIrGenerator {
+"v.container = this"
),
id
) else id) + "setCarrier().${name}Field = v"
) else id) + "setCarrier()",
+"${name}Field = v"
)
)
).indent()
@@ -161,7 +162,7 @@ internal object PersistentIrGenerator {
fun carriers(name: String, vararg fields: Field): E = lines(
id,
+"internal interface ${name}Carrier : DeclarationCarrier" + block(
*(fields.map { +"var ${it.name}Field: " + it.type + if (it.lateinit) "?" else "" }.toTypedArray()),
*(fields.map { +"val ${it.name}Field: " + it.type + if (it.lateinit) "?" else "" }.toTypedArray()),
id,
+"override fun clone(): ${name}Carrier " + block(
+"return ${name}CarrierImpl(",
@@ -179,10 +180,10 @@ internal object PersistentIrGenerator {
+"internal class ${name}CarrierImpl(",
arrayOf(
+"override val lastModified: Int",
+"override var parentField: " + IrDeclarationParent + "?",
+"override var originField: " + IrDeclarationOrigin,
+"override var annotationsField: List<" + IrConstructorCall + ">",
*(fields.map { +"override var ${it.name}Field: " + it.type + if (it.lateinit) "?" else "" }.toTypedArray()),
+"override val parentField: " + IrDeclarationParent + "?",
+"override val originField: " + IrDeclarationOrigin,
+"override val annotationsField: List<" + IrConstructorCall + ">",
*(fields.map { +"override val ${it.name}Field: " + it.type + if (it.lateinit) "?" else "" }.toTypedArray()),
).join(separator = ",\n").indent(),
+") : ${name}Carrier",
id,
@@ -17,12 +17,20 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
interface PersistentIrDeclarationBase<T : DeclarationCarrier> : PersistentIrElementBase<T>, IrDeclaration, DeclarationCarrier {
var removedOn: Int
override var parentField: IrDeclarationParent?
override var originField: IrDeclarationOrigin
override var annotationsField: List<IrConstructorCall>
// TODO reduce boilerplate
override var parent: IrDeclarationParent
get() = getCarrier().parentField ?: throw UninitializedPropertyAccessException("Parent not initialized: $this")
set(p) {
if (getCarrier().parentField !== p) {
setCarrier().parentField = p
setCarrier()
parentField = p
}
}
@@ -30,7 +38,8 @@ interface PersistentIrDeclarationBase<T : DeclarationCarrier> : PersistentIrElem
get() = getCarrier().originField
set(p) {
if (getCarrier().originField !== p) {
setCarrier().originField = p
setCarrier()
originField = p
}
}
@@ -38,7 +47,8 @@ interface PersistentIrDeclarationBase<T : DeclarationCarrier> : PersistentIrElem
get() = getCarrier().annotationsField
set(v) {
if (getCarrier().annotationsField !== v) {
setCarrier().annotationsField = v
setCarrier()
annotationsField = v
}
}
@@ -96,7 +106,7 @@ interface PersistentIrElementBase<T : Carrier> : IrElement, Carrier {
// TODO naming? e.g. `mutableCarrier`
@Suppress("UNCHECKED_CAST")
fun setCarrier(): T {
fun setCarrier() {
val stage = factory.stageController.currentStage
ensureLowered()
@@ -111,14 +121,12 @@ interface PersistentIrElementBase<T : Carrier> : IrElement, Carrier {
// TODO move up? i.e. fast path
if (stage == lastModified) {
return this as T
return
} else {
values = (values ?: emptyArray()) + this.clone() as T
}
this.lastModified = stage
return this as T
}
}
@@ -131,7 +139,8 @@ interface PersistentIrBodyBase<B : PersistentIrBodyBase<B>> : PersistentIrElemen
get() = getCarrier().containerField!!
set(p) {
if (getCarrier().containerField !== p) {
setCarrier().containerField = p
setCarrier()
containerField = p
}
}
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
interface DeclarationCarrier : Carrier {
var parentField: IrDeclarationParent?
var originField: IrDeclarationOrigin
var annotationsField: List<IrConstructorCall>
val parentField: IrDeclarationParent?
val originField: IrDeclarationOrigin
val annotationsField: List<IrConstructorCall>
}