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