diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt index 4870053b3b9..adbe1a1b69c 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt @@ -21,10 +21,6 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.lazy.lazyVar import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl -import org.jetbrains.kotlin.ir.util.transform -import org.jetbrains.kotlin.ir.util.transformIfNeeded -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name class Fir2IrLazyClass( @@ -192,19 +188,4 @@ class Fir2IrLazyClass( else -> false } } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitClass(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - thisReceiver?.accept(visitor, data) - typeParameters.forEach { it.accept(visitor, data) } - declarations.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - thisReceiver = thisReceiver?.transform(transformer, data) - typeParameters = typeParameters.transformIfNeeded(transformer, data) - declarations.transform { it.transform(transformer, data) } - } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt index 5ff27a11db0..ef121477666 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt @@ -18,8 +18,6 @@ import org.jetbrains.kotlin.ir.declarations.lazy.lazyVar import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.parentClassOrNull -import org.jetbrains.kotlin.ir.util.transformIfNeeded -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name @@ -114,24 +112,4 @@ class Fir2IrLazyConstructor( override fun accept(visitor: IrElementVisitor, data: D): R { return visitor.visitConstructor(this, data) } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - typeParameters.forEach { it.accept(visitor, data) } - - dispatchReceiverParameter?.accept(visitor, data) - extensionReceiverParameter?.accept(visitor, data) - valueParameters.forEach { it.accept(visitor, data) } - - body?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - typeParameters = typeParameters.transformIfNeeded(transformer, data) - - dispatchReceiverParameter = dispatchReceiverParameter?.transform(transformer, data) - extensionReceiverParameter = extensionReceiverParameter?.transform(transformer, data) - valueParameters = valueParameters.transformIfNeeded(transformer, data) - - body = body?.transform(transformer, data) - } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt index 6e33b6f62db..866da4c410c 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt @@ -21,8 +21,6 @@ import org.jetbrains.kotlin.ir.declarations.lazy.lazyVar import org.jetbrains.kotlin.ir.types.IrErrorType import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.isInterface -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name class Fir2IrLazyProperty( @@ -152,20 +150,4 @@ class Fir2IrLazyProperty( override var metadata: MetadataSource? get() = null set(_) = error("We should never need to store metadata of external declarations.") - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitProperty(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - backingField?.accept(visitor, data) - getter?.accept(visitor, data) - setter?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - backingField = backingField?.transform(transformer, data) as? IrField - getter = getter?.run { transform(transformer, data) as IrSimpleFunction } - setter = setter?.run { transform(transformer, data) as IrSimpleFunction } - } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt index e4aefef8016..1e7ecdcde9e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt @@ -21,9 +21,6 @@ import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.util.transformIfNeeded -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name class Fir2IrLazySimpleFunction( @@ -141,28 +138,4 @@ class Fir2IrLazySimpleFunction( override var metadata: MetadataSource? get() = null set(_) = error("We should never need to store metadata of external declarations.") - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitSimpleFunction(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - typeParameters.forEach { it.accept(visitor, data) } - - dispatchReceiverParameter?.accept(visitor, data) - extensionReceiverParameter?.accept(visitor, data) - valueParameters.forEach { it.accept(visitor, data) } - - body?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - typeParameters = typeParameters.transformIfNeeded(transformer, data) - - dispatchReceiverParameter = dispatchReceiverParameter?.transform(transformer, data) - extensionReceiverParameter = extensionReceiverParameter?.transform(transformer, data) - valueParameters = valueParameters.transformIfNeeded(transformer, data) - - body = body?.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrAnonymousInitializer.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrAnonymousInitializer.kt index f8279ba54c0..0a89f274e22 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrAnonymousInitializer.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrAnonymousInitializer.kt @@ -20,6 +20,8 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.expressions.IrBlockBody import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrAnonymousInitializer : IrSymbolDeclaration { @ObsoleteDescriptorBasedAPI @@ -27,5 +29,15 @@ interface IrAnonymousInitializer : IrSymbolDeclaration accept(visitor: IrElementVisitor, data: D): R = + visitor.visitAnonymousInitializer(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + body.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + body = body.transform(transformer, data) as IrBlockBody + } +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt index 11f0b8bff56..d8b02d4d78b 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt @@ -23,6 +23,10 @@ import org.jetbrains.kotlin.descriptors.SourceElement import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.transform +import org.jetbrains.kotlin.ir.util.transformIfNeeded +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrClass : IrSymbolDeclaration, IrDeclarationWithName, IrDeclarationWithVisibility, @@ -46,6 +50,21 @@ interface IrClass : var superTypes: List var thisReceiver: IrValueParameter? + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitClass(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + thisReceiver?.accept(visitor, data) + typeParameters.forEach { it.accept(visitor, data) } + declarations.forEach { it.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + thisReceiver = thisReceiver?.transform(transformer, data) + typeParameters = typeParameters.transformIfNeeded(transformer, data) + declarations.transform { it.transform(transformer, data) } + } } fun IrClass.addMember(member: IrDeclaration) { diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrConstructor.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrConstructor.kt index a5c93c63f69..b16c0d2325a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrConstructor.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrConstructor.kt @@ -19,10 +19,14 @@ package org.jetbrains.kotlin.ir.declarations import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrConstructor : IrFunction, IrSymbolDeclaration { @ObsoleteDescriptorBasedAPI override val descriptor: ClassConstructorDescriptor val isPrimary: Boolean + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitConstructor(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt index 9395dfb5f29..1f6194d85fe 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt @@ -20,6 +20,8 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrEnumEntry : IrSymbolDeclaration, IrDeclarationWithName { @ObsoleteDescriptorBasedAPI @@ -27,5 +29,17 @@ interface IrEnumEntry : IrSymbolDeclaration, IrDeclarationWit var correspondingClass: IrClass? var initializerExpression: IrExpressionBody? -} + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitEnumEntry(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + initializerExpression?.accept(visitor, data) + correspondingClass?.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + initializerExpression = initializerExpression?.transform(transformer, data) + correspondingClass = correspondingClass?.transform(transformer, data) as? IrClass + } +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrErrorDeclaration.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrErrorDeclaration.kt index b06ece242a2..24fac560699 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrErrorDeclaration.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrErrorDeclaration.kt @@ -16,5 +16,18 @@ package org.jetbrains.kotlin.ir.declarations -interface IrErrorDeclaration : IrDeclaration +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor +interface IrErrorDeclaration : IrDeclaration { + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitErrorDeclaration(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + // no children + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + // no children + } +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt index 04308a310e4..d70f4578c14 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt @@ -11,6 +11,8 @@ import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrField : IrSymbolDeclaration, @@ -27,4 +29,15 @@ interface IrField : var initializer: IrExpressionBody? var correspondingPropertySymbol: IrPropertySymbol? + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitField(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + initializer?.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + initializer = initializer?.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt index 6845b6fc717..655d5281193 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt @@ -23,6 +23,9 @@ import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.transformIfNeeded +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrFunction : IrDeclarationWithName, IrDeclarationWithVisibility, IrTypeParametersContainer, IrSymbolOwner, IrDeclarationParent, IrReturnTarget, @@ -43,6 +46,26 @@ interface IrFunction : var valueParameters: List var body: IrBody? + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + typeParameters.forEach { it.accept(visitor, data) } + + dispatchReceiverParameter?.accept(visitor, data) + extensionReceiverParameter?.accept(visitor, data) + valueParameters.forEach { it.accept(visitor, data) } + + body?.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + typeParameters = typeParameters.transformIfNeeded(transformer, data) + + dispatchReceiverParameter = dispatchReceiverParameter?.transform(transformer, data) + extensionReceiverParameter = extensionReceiverParameter?.transform(transformer, data) + valueParameters = valueParameters.transformIfNeeded(transformer, data) + + body = body?.transform(transformer, data) + } } @ObsoleteDescriptorBasedAPI diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrLocalDelegatedProperty.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrLocalDelegatedProperty.kt index d3695f4ca22..cf769469f78 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrLocalDelegatedProperty.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrLocalDelegatedProperty.kt @@ -20,6 +20,8 @@ import org.jetbrains.kotlin.descriptors.VariableDescriptorWithAccessors import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrLocalDelegatedProperty : IrDeclarationWithName, @@ -36,4 +38,19 @@ interface IrLocalDelegatedProperty : var delegate: IrVariable var getter: IrFunction var setter: IrFunction? + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitLocalDelegatedProperty(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + delegate.accept(visitor, data) + getter.accept(visitor, data) + setter?.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + delegate = delegate.transform(transformer, data) as IrVariable + getter = getter.transform(transformer, data) as IrFunction + setter = setter?.transform(transformer, data) as? IrFunction + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt index 1a4e021373a..5ed24f31a4c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt @@ -19,6 +19,8 @@ package org.jetbrains.kotlin.ir.declarations import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrProperty : IrOverridableMember, IrMetadataSourceOwner { @ObsoleteDescriptorBasedAPI @@ -36,4 +38,19 @@ interface IrProperty : IrOverridableMember, IrMetadataSourceOwner { var backingField: IrField? var getter: IrSimpleFunction? var setter: IrSimpleFunction? + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitProperty(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + backingField?.accept(visitor, data) + getter?.accept(visitor, data) + setter?.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + backingField = backingField?.transform(transformer, data) as? IrField + getter = getter?.run { transform(transformer, data) as IrSimpleFunction } + setter = setter?.run { transform(transformer, data) as IrSimpleFunction } + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt index c6327c11dec..f0dd6a7aaf2 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.declarations import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrSimpleFunction : IrFunction, @@ -22,6 +23,9 @@ interface IrSimpleFunction : val isInfix: Boolean var correspondingPropertySymbol: IrPropertySymbol? + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitSimpleFunction(this, data) } val IrFunction.isPropertyAccessor: Boolean diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeAlias.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeAlias.kt index 06d38803160..3c13b32ec27 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeAlias.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeAlias.kt @@ -9,6 +9,9 @@ import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.transformIfNeeded +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrTypeAlias : IrSymbolDeclaration, @@ -21,4 +24,15 @@ interface IrTypeAlias : val isActual: Boolean val expandedType: IrType -} \ No newline at end of file + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitTypeAlias(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + typeParameters.forEach { it.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + typeParameters = typeParameters.transformIfNeeded(transformer, data) + } +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeParameter.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeParameter.kt index 88e2b58f489..961a13e8c9f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeParameter.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeParameter.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.types.Variance interface IrTypeParameter : IrSymbolDeclaration, IrDeclarationWithName { @@ -32,5 +33,17 @@ interface IrTypeParameter : IrSymbolDeclaration, IrDeclar val isReified: Boolean val superTypes: MutableList - override fun transform(transformer: IrElementTransformer, data: D): IrTypeParameter -} \ No newline at end of file + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitTypeParameter(this, data) + + override fun transform(transformer: IrElementTransformer, data: D): IrTypeParameter = + transformer.visitTypeParameter(this, data) as IrTypeParameter + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + // no children + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + // no children + } +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueParameter.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueParameter.kt index dc17cd10eda..4d65eef6ccc 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueParameter.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueParameter.kt @@ -22,6 +22,7 @@ import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrValueParameter : IrValueDeclaration, IrSymbolDeclaration { @ObsoleteDescriptorBasedAPI @@ -34,5 +35,17 @@ interface IrValueParameter : IrValueDeclaration, IrSymbolDeclaration transform(transformer: IrElementTransformer, data: D): IrValueParameter -} \ No newline at end of file + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitValueParameter(this, data) + + override fun transform(transformer: IrElementTransformer, data: D): IrValueParameter = + transformer.visitValueParameter(this, data) as IrValueParameter + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + defaultValue?.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + defaultValue = defaultValue?.transform(transformer, data) + } +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt index d478a1ab7e2..85f2d8462e1 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt @@ -23,8 +23,6 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.impl.carriers.AnonymousInitializerCarrier import org.jetbrains.kotlin.ir.expressions.IrBlockBody import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrAnonymousInitializerImpl( startOffset: Int, @@ -41,7 +39,8 @@ class IrAnonymousInitializerImpl( } @ObsoleteDescriptorBasedAPI - override val descriptor: ClassDescriptor get() = symbol.descriptor + override val descriptor: ClassDescriptor + get() = symbol.descriptor override var bodyField: IrBlockBody? = null @@ -55,16 +54,4 @@ class IrAnonymousInitializerImpl( setCarrier().bodyField = v } } - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitAnonymousInitializer(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - body.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - body = body.transform(transformer, data) as IrBlockBody - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt index 4eb2ca8a568..c6804276be8 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt @@ -22,10 +22,6 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.carriers.ClassCarrier import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.util.transform -import org.jetbrains.kotlin.ir.util.transformIfNeeded -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name import java.util.* import kotlin.collections.ArrayList @@ -57,7 +53,8 @@ class IrClassImpl( } @ObsoleteDescriptorBasedAPI - override val descriptor: ClassDescriptor get() = symbol.descriptor + override val descriptor: ClassDescriptor + get() = symbol.descriptor override var visibilityField: Visibility = visibility @@ -144,19 +141,4 @@ class IrClassImpl( setCarrier().attributeOwnerIdField = v } } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitClass(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - thisReceiver?.accept(visitor, data) - typeParameters.forEach { it.accept(visitor, data) } - declarations.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - thisReceiver = thisReceiver?.transform(transformer, data) - typeParameters = typeParameters.transformIfNeeded(transformer, data) - declarations.transform { it.transform(transformer, data) } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt index d4d8c41a54b..4271ec2efe0 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt @@ -24,7 +24,6 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.impl.carriers.ConstructorCarrier import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name class IrConstructorImpl( @@ -54,8 +53,6 @@ class IrConstructorImpl( } @ObsoleteDescriptorBasedAPI - override val descriptor: ClassConstructorDescriptor get() = symbol.descriptor - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitConstructor(this, data) + override val descriptor: ClassConstructorDescriptor + get() = symbol.descriptor } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt index ca4bf1bd94f..a5040a72ad5 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt @@ -24,8 +24,6 @@ import org.jetbrains.kotlin.ir.declarations.IrEnumEntry import org.jetbrains.kotlin.ir.declarations.impl.carriers.EnumEntryCarrier import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name class IrEnumEntryImpl( @@ -43,7 +41,8 @@ class IrEnumEntryImpl( } @ObsoleteDescriptorBasedAPI - override val descriptor: ClassDescriptor get() = symbol.descriptor + override val descriptor: ClassDescriptor + get() = symbol.descriptor override var correspondingClassField: IrClass? = null @@ -67,18 +66,4 @@ class IrEnumEntryImpl( setCarrier().initializerExpressionField = v } } - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitEnumEntry(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - initializerExpression?.accept(visitor, data) - correspondingClass?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - initializerExpression = initializerExpression?.transform(transformer, data) - correspondingClass = correspondingClass?.transform(transformer, data) as? IrClass - } -} \ No newline at end of file +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt index 4f91ac12b8a..60fc87c500c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt @@ -21,25 +21,10 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.IrErrorDeclaration import org.jetbrains.kotlin.ir.declarations.impl.carriers.ErrorCarrier -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor @OptIn(ObsoleteDescriptorBasedAPI::class) class IrErrorDeclarationImpl( startOffset: Int, endOffset: Int, override val descriptor: DeclarationDescriptor -) : IrDeclarationBase(startOffset, endOffset, IrDeclarationOrigin.DEFINED), IrErrorDeclaration, ErrorCarrier { - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitErrorDeclaration(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - // no children - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - // no children - } -} \ No newline at end of file +) : IrDeclarationBase(startOffset, endOffset, IrDeclarationOrigin.DEFINED), IrErrorDeclaration, ErrorCarrier diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt index dc9c1f4b20a..9d6126a3105 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt @@ -27,8 +27,6 @@ import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name class IrFieldImpl( @@ -51,7 +49,8 @@ class IrFieldImpl( } @ObsoleteDescriptorBasedAPI - override val descriptor: PropertyDescriptor = symbol.descriptor + override val descriptor: PropertyDescriptor + get() = symbol.descriptor override var initializerField: IrExpressionBody? = null @@ -85,16 +84,4 @@ class IrFieldImpl( setCarrier().metadataField = v } } - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitField(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - initializer?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - initializer = initializer?.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionBase.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionBase.kt index 87a67ac8f63..ad577340112 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionBase.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionBase.kt @@ -22,9 +22,6 @@ import org.jetbrains.kotlin.ir.declarations.impl.carriers.FunctionBaseCarrier import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType -import org.jetbrains.kotlin.ir.util.transformIfNeeded -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name abstract class IrFunctionBase( @@ -51,6 +48,7 @@ abstract class IrFunctionBase( setCarrier().returnTypeFieldField = v } } + @Suppress("DEPRECATION") final override var returnType: IrType get() = returnTypeField.let { @@ -132,24 +130,4 @@ abstract class IrFunctionBase( setCarrier().visibilityField = v } } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - typeParameters.forEach { it.accept(visitor, data) } - - dispatchReceiverParameter?.accept(visitor, data) - extensionReceiverParameter?.accept(visitor, data) - valueParameters.forEach { it.accept(visitor, data) } - - body?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - typeParameters = typeParameters.transformIfNeeded(transformer, data) - - dispatchReceiverParameter = dispatchReceiverParameter?.transform(transformer, data) - extensionReceiverParameter = extensionReceiverParameter?.transform(transformer, data) - valueParameters = valueParameters.transformIfNeeded(transformer, data) - - body = body?.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt index 587d4d16cd6..b056ea042b5 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name abstract class IrFunctionCommonImpl( @@ -53,6 +52,7 @@ abstract class IrFunctionCommonImpl( } } + @Suppress("LeakingThis") override var attributeOwnerIdField: IrAttributeContainer = this override var attributeOwnerId: IrAttributeContainer @@ -72,9 +72,6 @@ abstract class IrFunctionCommonImpl( setCarrier().correspondingPropertySymbolField = v } } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitSimpleFunction(this, data) } class IrFunctionImpl( @@ -105,9 +102,6 @@ class IrFunctionImpl( init { symbol.bind(this) } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitSimpleFunction(this, data) } class IrFakeOverrideFunctionImpl( diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt index 659bc18ee52..6e668529579 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt @@ -22,8 +22,6 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.carriers.LocalDelegatedPropertyCarrier import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name // TODO make not persistent @@ -87,19 +85,4 @@ class IrLocalDelegatedPropertyImpl( setCarrier().metadataField = v } } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitLocalDelegatedProperty(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - delegate.accept(visitor, data) - getter.accept(visitor, data) - setter?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - delegate = delegate.transform(transformer, data) as IrVariable - getter = getter.transform(transformer, data) as IrFunction - setter = setter?.transform(transformer, data) as? IrFunction - } -} \ No newline at end of file +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt index 08e8a3e15a0..5ec1807cc21 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt @@ -24,8 +24,6 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.carriers.PropertyCarrier import org.jetbrains.kotlin.ir.descriptors.WrappedPropertyDescriptor import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name abstract class IrPropertyCommonImpl( @@ -77,17 +75,6 @@ abstract class IrPropertyCommonImpl( } } - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitProperty(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - backingField?.accept(visitor, data) - getter?.accept(visitor, data) - setter?.accept(visitor, data) - } - override var metadataField: MetadataSource? = null override var metadata: MetadataSource? @@ -97,12 +84,6 @@ abstract class IrPropertyCommonImpl( setCarrier().metadataField = v } } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - backingField = backingField?.transform(transformer, data) as? IrField - getter = getter?.run { transform(transformer, data) as IrSimpleFunction } - setter = setter?.run { transform(transformer, data) as IrSimpleFunction } - } } class IrPropertyImpl( @@ -128,7 +109,8 @@ class IrPropertyImpl( } @ObsoleteDescriptorBasedAPI - override val descriptor: PropertyDescriptor = symbol.descriptor + override val descriptor: PropertyDescriptor + get() = symbol.descriptor } class IrFakeOverridePropertyImpl( diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt index 87ddd368656..489b51cfda6 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt @@ -14,9 +14,6 @@ import org.jetbrains.kotlin.ir.declarations.IrTypeParameter import org.jetbrains.kotlin.ir.declarations.impl.carriers.TypeAliasCarrier import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.util.transformIfNeeded -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name class IrTypeAliasImpl( @@ -50,15 +47,4 @@ class IrTypeAliasImpl( setCarrier().typeParametersField = v } } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitTypeAlias(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - typeParameters.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - typeParameters = typeParameters.transformIfNeeded(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt index d4e9c05d083..b6d9ae16083 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt @@ -23,8 +23,6 @@ import org.jetbrains.kotlin.ir.declarations.IrTypeParameter import org.jetbrains.kotlin.ir.declarations.impl.carriers.TypeParameterCarrier import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.utils.SmartList @@ -48,21 +46,8 @@ class IrTypeParameterImpl( } @ObsoleteDescriptorBasedAPI - override val descriptor: TypeParameterDescriptor get() = symbol.descriptor + override val descriptor: TypeParameterDescriptor + get() = symbol.descriptor override val superTypes: MutableList = SmartList() - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitTypeParameter(this, data) - - override fun transform(transformer: IrElementTransformer, data: D): IrTypeParameter = - transformer.visitTypeParameter(this, data) as IrTypeParameter - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - // no children - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - // no children - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt index eb013734a18..60dc7c7d48a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt @@ -24,8 +24,6 @@ import org.jetbrains.kotlin.ir.declarations.impl.carriers.ValueParameterCarrier import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name class IrValueParameterImpl( @@ -45,7 +43,8 @@ class IrValueParameterImpl( ValueParameterCarrier { @ObsoleteDescriptorBasedAPI - override val descriptor: ParameterDescriptor = symbol.descriptor + override val descriptor: ParameterDescriptor + get() = symbol.descriptor init { symbol.bind(this) @@ -63,18 +62,4 @@ class IrValueParameterImpl( setCarrier().defaultValueField = v } } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitValueParameter(this, data) - - override fun transform(transformer: IrElementTransformer, data: D): IrValueParameter = - transformer.visitValueParameter(this, data) as IrValueParameter - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - defaultValue?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - defaultValue = defaultValue?.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt index 030b468fb92..0fe8d0568f7 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt @@ -12,10 +12,6 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator import org.jetbrains.kotlin.ir.util.TypeTranslator -import org.jetbrains.kotlin.ir.util.transform -import org.jetbrains.kotlin.ir.util.transformIfNeeded -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.deserialization.NameResolver import org.jetbrains.kotlin.name.Name @@ -94,19 +90,4 @@ class IrLazyClass( override var metadata: MetadataSource? get() = null set(_) = error("We should never need to store metadata of external declarations.") - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitClass(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - thisReceiver?.accept(visitor, data) - typeParameters.forEach { it.accept(visitor, data) } - declarations.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - thisReceiver = thisReceiver?.transform(transformer, data) - typeParameters = typeParameters.transformIfNeeded(transformer, data) - declarations.transform { it.transform(transformer, data) } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyConstructor.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyConstructor.kt index 15c9f0d99d6..d914bcbef29 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyConstructor.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyConstructor.kt @@ -15,7 +15,6 @@ import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator import org.jetbrains.kotlin.ir.util.TypeTranslator import org.jetbrains.kotlin.ir.util.withScope -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name @OptIn(ObsoleteDescriptorBasedAPI::class) @@ -56,7 +55,4 @@ class IrLazyConstructor( init { symbol.bind(this) } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitConstructor(this, data) -} \ No newline at end of file +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt index 0423cf9448a..43d0ee02559 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt @@ -25,8 +25,6 @@ import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator import org.jetbrains.kotlin.ir.util.TypeTranslator -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name @OptIn(ObsoleteDescriptorBasedAPI::class) @@ -50,18 +48,4 @@ class IrLazyEnumEntryImpl( override var correspondingClass: IrClass? = null override var initializerExpression: IrExpressionBody? = null - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitEnumEntry(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - initializerExpression?.accept(visitor, data) - correspondingClass?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - initializerExpression = initializerExpression?.transform(transformer, data) - correspondingClass = correspondingClass?.transform(transformer, data) as? IrClass - } -} \ No newline at end of file +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyField.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyField.kt index 505d601ccda..273eb965f61 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyField.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyField.kt @@ -19,8 +19,6 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator import org.jetbrains.kotlin.ir.util.TypeTranslator -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name @OptIn(ObsoleteDescriptorBasedAPI::class) @@ -69,16 +67,4 @@ class IrLazyField( override var metadata: MetadataSource? get() = null set(_) = error("We should never need to store metadata of external declarations.") - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitField(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - initializer?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - initializer = initializer?.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunction.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunction.kt index 395e2f89292..068815b9618 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunction.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunction.kt @@ -15,7 +15,6 @@ import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator import org.jetbrains.kotlin.ir.util.TypeTranslator import org.jetbrains.kotlin.ir.util.withScope -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.descriptorUtil.propertyIfAccessor @@ -73,7 +72,4 @@ class IrLazyFunction( init { symbol.bind(this) } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitSimpleFunction(this, data) -} \ No newline at end of file +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunctionBase.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunctionBase.kt index 511f4ada676..78f0f03fb6b 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunctionBase.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunctionBase.kt @@ -15,9 +15,6 @@ import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator import org.jetbrains.kotlin.ir.util.TypeTranslator -import org.jetbrains.kotlin.ir.util.transformIfNeeded -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name @OptIn(ObsoleteDescriptorBasedAPI::class) @@ -70,24 +67,4 @@ abstract class IrLazyFunctionBase( override var metadata: MetadataSource? get() = null set(_) = error("We should never need to store metadata of external declarations.") - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - typeParameters.forEach { it.accept(visitor, data) } - - dispatchReceiverParameter?.accept(visitor, data) - extensionReceiverParameter?.accept(visitor, data) - valueParameters.forEach { it.accept(visitor, data) } - - body?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - typeParameters = typeParameters.transformIfNeeded(transformer, data) - - dispatchReceiverParameter = dispatchReceiverParameter?.transform(transformer, data) - extensionReceiverParameter = extensionReceiverParameter?.transform(transformer, data) - valueParameters = valueParameters.transformIfNeeded(transformer, data) - - body = body?.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyProperty.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyProperty.kt index 286534c46c2..32f18a0e406 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyProperty.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyProperty.kt @@ -13,8 +13,6 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator import org.jetbrains.kotlin.ir.util.TypeTranslator -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.hasBackingField @@ -73,19 +71,4 @@ class IrLazyProperty( override var metadata: MetadataSource? get() = null set(_) = error("We should never need to store metadata of external declarations.") - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitProperty(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - backingField?.accept(visitor, data) - getter?.accept(visitor, data) - setter?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - backingField = backingField?.transform(transformer, data) as? IrField - getter = getter?.run { transform(transformer, data) as IrSimpleFunction } - setter = setter?.run { transform(transformer, data) as IrSimpleFunction } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeAlias.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeAlias.kt index 89d5aee9d7c..4c5079ef4fa 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeAlias.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeAlias.kt @@ -16,9 +16,6 @@ import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator import org.jetbrains.kotlin.ir.util.TypeTranslator -import org.jetbrains.kotlin.ir.util.transformIfNeeded -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name @OptIn(ObsoleteDescriptorBasedAPI::class) @@ -54,15 +51,4 @@ class IrLazyTypeAlias( } } } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitTypeAlias(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - typeParameters.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - typeParameters = typeParameters.transformIfNeeded(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeParameter.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeParameter.kt index daf954d332e..a7dece1f9fe 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeParameter.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeParameter.kt @@ -15,8 +15,6 @@ import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator import org.jetbrains.kotlin.ir.util.TypeTranslator -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance @@ -49,18 +47,4 @@ class IrLazyTypeParameter( } } } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitTypeParameter(this, data) - - override fun transform(transformer: IrElementTransformer, data: D): IrTypeParameter = - transformer.visitTypeParameter(this, data) as IrTypeParameter - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - // no children - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - // no children - } -} \ No newline at end of file +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBody.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBody.kt index 517acb40791..73a25f6a9b5 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBody.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBody.kt @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFactory import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor interface IrBody : IrElement { override fun transform(transformer: IrElementTransformer, data: D): IrBody = @@ -30,12 +31,36 @@ interface IrExpressionBody : IrBody { var expression: IrExpression + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitExpressionBody(this, data) + override fun transform(transformer: IrElementTransformer, data: D): IrExpressionBody = accept(transformer, data) as IrExpressionBody + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + expression.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + expression = expression.transform(transformer, data) + } } interface IrBlockBody : IrBody, IrStatementContainer { val factory: IrFactory + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitBlockBody(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + statements.forEach { it.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + statements.forEachIndexed { i, irStatement -> + statements[i] = irStatement.transform(transformer, data) + } + } } interface IrSyntheticBody : IrBody { diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockBodyImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockBodyImpl.kt index 302f05106e3..0a7c33f1cf1 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockBodyImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockBodyImpl.kt @@ -21,8 +21,6 @@ import org.jetbrains.kotlin.ir.declarations.IrFactory import org.jetbrains.kotlin.ir.declarations.impl.IrBodyBase import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl import org.jetbrains.kotlin.ir.expressions.IrBlockBody -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrBlockBodyImpl( startOffset: Int, @@ -43,18 +41,4 @@ class IrBlockBodyImpl( override val factory: IrFactory get() = IrFactoryImpl - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitBlockBody(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - statements.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - statements.forEachIndexed { i, irStatement -> - statements[i] = irStatement.transform(transformer, data) - } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrExpressionBodyImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrExpressionBodyImpl.kt index 4c8e57860f5..a5ee47483a8 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrExpressionBodyImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrExpressionBodyImpl.kt @@ -21,8 +21,6 @@ import org.jetbrains.kotlin.ir.declarations.impl.IrBodyBase import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrExpressionBody -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrExpressionBodyImpl private constructor( startOffset: Int, @@ -38,7 +36,7 @@ class IrExpressionBodyImpl private constructor( constructor(startOffset: Int, endOffset: Int, expression: IrExpression) : this(startOffset, endOffset, expression, null) constructor(startOffset: Int, endOffset: Int, initializer: IrExpressionBody.() -> Unit) : - this(startOffset, endOffset, null, initializer) + this(startOffset, endOffset, null, initializer) override var expression: IrExpression get() = checkEnabled { expressionField!! } @@ -48,15 +46,4 @@ class IrExpressionBodyImpl private constructor( override val factory: IrFactory get() = IrFactoryImpl - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitExpressionBody(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - expression.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - expression = expression.transform(transformer, data) - } }