diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrExternalPackageFragment.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrExternalPackageFragment.kt index 5bf94b8e042..13ddedd26e2 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrExternalPackageFragment.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrExternalPackageFragment.kt @@ -6,9 +6,23 @@ package org.jetbrains.kotlin.ir.declarations import org.jetbrains.kotlin.ir.symbols.IrExternalPackageFragmentSymbol +import org.jetbrains.kotlin.ir.util.transformInPlace +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource abstract class IrExternalPackageFragment : IrPackageFragment() { abstract override val symbol: IrExternalPackageFragmentSymbol abstract val containerSource: DeserializedContainerSource? + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitExternalPackageFragment(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + declarations.forEach { it.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + declarations.transformInPlace(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFile.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFile.kt index fc944989ded..febba2518aa 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFile.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFile.kt @@ -7,7 +7,9 @@ package org.jetbrains.kotlin.ir.declarations import org.jetbrains.kotlin.ir.IrFileEntry import org.jetbrains.kotlin.ir.symbols.IrFileSymbol +import org.jetbrains.kotlin.ir.util.transformInPlace import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrFile : IrPackageFragment(), IrMutableAnnotationContainer, IrMetadataSourceOwner { abstract override val symbol: IrFileSymbol @@ -16,6 +18,17 @@ abstract class IrFile : IrPackageFragment(), IrMutableAnnotationContainer, IrMet abstract val fileEntry: IrFileEntry + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitFile(this, data) + override fun transform(transformer: IrElementTransformer, data: D): IrFile = accept(transformer, data) as IrFile + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + declarations.forEach { it.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + declarations.transformInPlace(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrModuleFragment.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrModuleFragment.kt index 8122232a10d..0c7118b22b8 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrModuleFragment.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrModuleFragment.kt @@ -7,10 +7,11 @@ package org.jetbrains.kotlin.ir.declarations import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.ir.IrBuiltIns -import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElementBase import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET +import org.jetbrains.kotlin.ir.util.transformInPlace import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name abstract class IrModuleFragment : IrElementBase() { @@ -19,9 +20,23 @@ abstract class IrModuleFragment : IrElementBase() { abstract val irBuiltins: IrBuiltIns abstract val files: MutableList - override val startOffset: Int get() = UNDEFINED_OFFSET - override val endOffset: Int get() = UNDEFINED_OFFSET + override val startOffset: Int + get() = UNDEFINED_OFFSET - override fun transform(transformer: IrElementTransformer, data: D): IrElement = + override val endOffset: Int + get() = UNDEFINED_OFFSET + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitModuleFragment(this, data) + + override fun transform(transformer: IrElementTransformer, data: D): IrModuleFragment = accept(transformer, data) as IrModuleFragment + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + files.forEach { it.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + files.transformInPlace(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrScript.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrScript.kt index fc526a8b038..08d7bf27223 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrScript.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrScript.kt @@ -10,6 +10,9 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrScriptSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.transformInPlace +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor //TODO: make IrScript as IrPackageFragment, because script is used as a file, not as a class //NOTE: declarations and statements stored separately @@ -40,4 +43,25 @@ abstract class IrScript : abstract var targetClass: IrClassSymbol? abstract var constructor: IrConstructor? + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitScript(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + statements.forEach { it.accept(visitor, data) } + thisReceiver.accept(visitor, data) + explicitCallParameters.forEach { it.accept(visitor, data) } + implicitReceiversParameters.forEach { it.accept(visitor, data) } + providedProperties.forEach { it.first.accept(visitor, data) } + earlierScriptsParameter?.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + statements.transformInPlace(transformer, data) + thisReceiver = thisReceiver.transform(transformer, data) + explicitCallParameters = explicitCallParameters.map { it.transform(transformer, data) } + implicitReceiversParameters = implicitReceiversParameters.map { it.transform(transformer, data) } + providedProperties = providedProperties.map { it.first.transform(transformer, data) to it.second } + earlierScriptsParameter = earlierScriptsParameter?.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrVariable.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrVariable.kt index 07c6b87ac59..70f9d0c6cdb 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrVariable.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrVariable.kt @@ -9,6 +9,8 @@ import org.jetbrains.kotlin.descriptors.VariableDescriptor import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrVariable : IrValueDeclaration() { @ObsoleteDescriptorBasedAPI @@ -20,4 +22,15 @@ abstract class IrVariable : IrValueDeclaration() { abstract val isLateinit: Boolean abstract var initializer: IrExpression? + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitVariable(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/IrExternalPackageFragmentImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt index 9b8ad6c1100..05443aebba5 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt @@ -25,8 +25,6 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclaration import org.jetbrains.kotlin.ir.declarations.IrExternalPackageFragment import org.jetbrains.kotlin.ir.symbols.IrExternalPackageFragmentSymbol import org.jetbrains.kotlin.ir.symbols.impl.IrExternalPackageFragmentSymbolImpl -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberDescriptor @@ -55,19 +53,6 @@ class IrExternalPackageFragmentImpl( override val containerSource: DeserializedContainerSource? get() = (symbol.descriptor as? DeserializedMemberDescriptor)?.containerSource - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitExternalPackageFragment(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - declarations.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - declarations.forEachIndexed { i, irDeclaration -> - declarations[i] = irDeclaration.transform(transformer, data) as IrDeclaration - } - } - companion object { fun createEmptyExternalPackageFragment(module: ModuleDescriptor, fqName: FqName): IrExternalPackageFragment = IrExternalPackageFragmentImpl( diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt index a53cb1263a7..9b077b88529 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt @@ -26,8 +26,6 @@ import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrFileSymbol import org.jetbrains.kotlin.ir.symbols.impl.IrFileSymbolImpl -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.FqName class IrFileImpl( @@ -76,17 +74,4 @@ class IrFileImpl( override var annotations: List = emptyList() override var metadata: MetadataSource? = null - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitFile(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - declarations.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - declarations.forEachIndexed { i, irDeclaration -> - declarations[i] = irDeclaration.transform(transformer, data) as IrDeclaration - } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrModuleFragmentImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrModuleFragmentImpl.kt index c5ebea805c9..d34c39b5646 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrModuleFragmentImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrModuleFragmentImpl.kt @@ -20,8 +20,6 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.ir.IrBuiltIns import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.declarations.IrModuleFragment -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name class IrModuleFragmentImpl( @@ -32,17 +30,4 @@ class IrModuleFragmentImpl( override val name: Name get() = descriptor.name // TODO override val files: MutableList = files.toMutableList() - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitModuleFragment(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - files.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - files.forEachIndexed { i, irFile -> - files[i] = irFile.transform(transformer, data) - } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt index 3240e112183..3394cfa8075 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt @@ -15,9 +15,6 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrScriptSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.util.transformInPlace -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.utils.SmartList @@ -65,26 +62,4 @@ class IrScriptImpl( init { symbol.bind(this) } - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitScript(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - statements.forEach { it.accept(visitor, data) } - thisReceiver.accept(visitor, data) - explicitCallParameters.forEach { it.accept(visitor, data) } - implicitReceiversParameters.forEach { it.accept(visitor, data) } - providedProperties.forEach { it.first.accept(visitor, data) } - earlierScriptsParameter?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - statements.transformInPlace(transformer, data) - thisReceiver = thisReceiver.transform(transformer, data) - explicitCallParameters = explicitCallParameters.map { it.transform(transformer, data) } - implicitReceiversParameters = implicitReceiversParameters.map { it.transform(transformer, data) } - providedProperties = providedProperties.map { it.first.transform(transformer, data) to it.second } - earlierScriptsParameter = earlierScriptsParameter?.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt index c8bc603f878..f2e7c8ce0c7 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt @@ -26,8 +26,6 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol 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 IrVariableImpl( @@ -69,15 +67,4 @@ class IrVariableImpl( override val factory: IrFactory get() = error("Create IrVariableImpl directly") - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitVariable(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/expressions/IrBlock.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlock.kt index 89472add7ee..d938a63c401 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlock.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlock.kt @@ -5,7 +5,12 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrBlock : IrContainerExpression() { override val isTransparentScope: Boolean get() = false + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitBlock(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlockBody.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlockBody.kt index be2ace3bf85..5cef5860051 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlockBody.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlockBody.kt @@ -5,8 +5,8 @@ package org.jetbrains.kotlin.ir.expressions -import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.declarations.IrFactory +import org.jetbrains.kotlin.ir.util.transformInPlace import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor @@ -21,8 +21,6 @@ abstract class IrBlockBody : IrBody(), IrStatementContainer { } override fun transformChildren(transformer: IrElementTransformer, data: D) { - statements.forEachIndexed { i, irStatement -> - statements[i] = irStatement.transform(transformer, data) as IrStatement - } + statements.transformInPlace(transformer, data) } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBranch.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBranch.kt index 13923d01b6d..6f42b0b8e6b 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBranch.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBranch.kt @@ -13,13 +13,17 @@ abstract class IrBranch : IrElementBase() { abstract var condition: IrExpression abstract var result: IrExpression - abstract override fun transform(transformer: IrElementTransformer, data: D): IrBranch + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitBranch(this, data) override fun acceptChildren(visitor: IrElementVisitor, data: D) { condition.accept(visitor, data) result.accept(visitor, data) } + override fun transform(transformer: IrElementTransformer, data: D): IrBranch = + transformer.visitBranch(this, data) + override fun transformChildren(transformer: IrElementTransformer, data: D) { condition = condition.transform(transformer, data) result = result.transform(transformer, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBreak.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBreak.kt index a5947751143..7f9873856dc 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBreak.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBreak.kt @@ -5,4 +5,9 @@ package org.jetbrains.kotlin.ir.expressions -abstract class IrBreak : IrBreakContinue() +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + +abstract class IrBreak : IrBreakContinue() { + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitBreak(this, data) +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrCall.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrCall.kt index 934a08168c1..5b90c5cc70d 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrCall.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrCall.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrCall( typeArgumentsCount: Int, @@ -14,4 +15,7 @@ abstract class IrCall( ) : IrFunctionAccessExpression(typeArgumentsCount, valueArgumentsCount) { override abstract val symbol: IrSimpleFunctionSymbol abstract val superQualifierSymbol: IrClassSymbol? + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitCall(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrCatch.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrCatch.kt index cbcdfde56c6..5c88e38d091 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrCatch.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrCatch.kt @@ -8,11 +8,25 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.IrElementBase import org.jetbrains.kotlin.ir.declarations.IrVariable import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrCatch : IrElementBase() { abstract var catchParameter: IrVariable abstract var result: IrExpression + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitCatch(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + catchParameter.accept(visitor, data) + result.accept(visitor, data) + } + override fun transform(transformer: IrElementTransformer, data: D): IrCatch = super.transform(transformer, data) as IrCatch + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + catchParameter = catchParameter.transform(transformer, data) as IrVariable + result = result.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrClassReference.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrClassReference.kt index 6f75c57f353..69c020ec43a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrClassReference.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrClassReference.kt @@ -7,8 +7,12 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrClassReference : IrDeclarationReference() { abstract override val symbol: IrClassifierSymbol abstract var classType: IrType + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitClassReference(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrComposite.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrComposite.kt index 1169c34602e..8239312b55a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrComposite.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrComposite.kt @@ -5,7 +5,12 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrComposite : IrContainerExpression() { override val isTransparentScope: Boolean get() = true + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitComposite(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConst.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConst.kt index 7c8550c158e..1b4afa2222c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConst.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConst.kt @@ -5,9 +5,14 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrConst : IrExpression() { abstract val kind: IrConstKind abstract val value: T abstract fun copyWithOffsets(startOffset: Int, endOffset: Int): IrConst + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitConst(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantArray.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantArray.kt index d18ab324a1a..adb8a53c076 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantArray.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantArray.kt @@ -5,6 +5,21 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.util.transformInPlace +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrConstantArray : IrConstantValue() { abstract val elements: MutableList + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitConstantArray(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + elements.forEach { value -> value.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + elements.transformInPlace { value -> value.transform(transformer, data) } + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantObject.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantObject.kt index 4549bb4b895..ab6351e6a00 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantObject.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantObject.kt @@ -7,9 +7,20 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.transformInPlace +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrConstantObject : IrConstantValue() { abstract val constructor: IrConstructorSymbol abstract val valueArguments: MutableList abstract val typeArguments: List + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + valueArguments.forEach { value -> value.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + valueArguments.transformInPlace { it.transform(transformer, data) } + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantPrimitive.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantPrimitive.kt index 916eb63d966..c5af488bf4c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantPrimitive.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstantPrimitive.kt @@ -5,6 +5,20 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrConstantPrimitive : IrConstantValue() { abstract var value: IrConst<*> + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitConstantPrimitive(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + value.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + value = value.transform(transformer, data) as IrConst<*> + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstructorCall.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstructorCall.kt index 7e00c444a6a..5e001a3d757 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstructorCall.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrConstructorCall.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrConstructorCall( typeArgumentsCount: Int, @@ -14,4 +15,7 @@ abstract class IrConstructorCall( abstract override val symbol: IrConstructorSymbol abstract val constructorTypeArgumentsCount: Int + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitConstructorCall(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrContinue.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrContinue.kt index 205462c3f8d..3e624917131 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrContinue.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrContinue.kt @@ -5,4 +5,9 @@ package org.jetbrains.kotlin.ir.expressions -abstract class IrContinue : IrBreakContinue() +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + +abstract class IrContinue : IrBreakContinue() { + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitContinue(this, data) +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDelegatingConstructorCall.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDelegatingConstructorCall.kt index b5beecd505f..5ffa0e817cf 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDelegatingConstructorCall.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDelegatingConstructorCall.kt @@ -6,10 +6,14 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrDelegatingConstructorCall( typeArgumentsCount: Int, valueArgumentsCount: Int, ) : IrFunctionAccessExpression(typeArgumentsCount, valueArgumentsCount) { abstract override val symbol: IrConstructorSymbol + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitDelegatingConstructorCall(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDoWhileLoop.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDoWhileLoop.kt index 6ce69b4645c..2255c9e66f4 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDoWhileLoop.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDoWhileLoop.kt @@ -5,4 +5,20 @@ package org.jetbrains.kotlin.ir.expressions -abstract class IrDoWhileLoop : IrLoop() +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + +abstract class IrDoWhileLoop : IrLoop() { + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitDoWhileLoop(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + body?.accept(visitor, data) + condition.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + body = body?.transform(transformer, data) + condition = condition.transform(transformer, data) + } +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDynamicMemberExpression.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDynamicMemberExpression.kt index 9c5ca9e8831..90f9a872f45 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDynamicMemberExpression.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDynamicMemberExpression.kt @@ -5,8 +5,22 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrDynamicMemberExpression : IrDynamicExpression() { abstract val memberName: String abstract var receiver: IrExpression + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitDynamicMemberExpression(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + receiver.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + receiver = receiver.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDynamicOperatorExpression.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDynamicOperatorExpression.kt index 67b0177653f..53030fd9a4c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDynamicOperatorExpression.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrDynamicOperatorExpression.kt @@ -5,10 +5,30 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrDynamicOperatorExpression : IrDynamicExpression() { abstract val operator: IrDynamicOperator abstract var receiver: IrExpression abstract val arguments: MutableList + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitDynamicOperatorExpression(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + receiver.accept(visitor, data) + for (valueArgument in arguments) { + valueArgument.accept(visitor, data) + } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + receiver = receiver.transform(transformer, data) + for (i in arguments.indices) { + arguments[i] = arguments[i].transform(transformer, data) + } + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrElseBranch.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrElseBranch.kt index f82b0b2328c..c34c3abba7d 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrElseBranch.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrElseBranch.kt @@ -5,4 +5,13 @@ package org.jetbrains.kotlin.ir.expressions -abstract class IrElseBranch : IrBranch() +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + +abstract class IrElseBranch : IrBranch() { + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitElseBranch(this, data) + + override fun transform(transformer: IrElementTransformer, data: D): IrElseBranch = + transformer.visitElseBranch(this, data) +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrEnumConstructorCall.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrEnumConstructorCall.kt index 04b2ffcd748..bf6a1d55a30 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrEnumConstructorCall.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrEnumConstructorCall.kt @@ -6,10 +6,14 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrEnumConstructorCall( typeArgumentsCount: Int, valueArgumentsCount: Int, ) : IrFunctionAccessExpression(typeArgumentsCount, valueArgumentsCount) { abstract override val symbol: IrConstructorSymbol + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitEnumConstructorCall(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrErrorCallExpression.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrErrorCallExpression.kt index 5759aa5ebd2..adab5308567 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrErrorCallExpression.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrErrorCallExpression.kt @@ -5,7 +5,25 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrErrorCallExpression : IrErrorExpression() { abstract var explicitReceiver: IrExpression? abstract val arguments: MutableList + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitErrorCallExpression(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + explicitReceiver?.accept(visitor, data) + arguments.forEach { it.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + explicitReceiver = explicitReceiver?.transform(transformer, data) + arguments.forEachIndexed { i, irExpression -> + arguments[i] = irExpression.transform(transformer, data) + } + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrErrorExpression.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrErrorExpression.kt index 134fb23136d..e01b69c3a77 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrErrorExpression.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrErrorExpression.kt @@ -5,6 +5,11 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrErrorExpression : IrExpression() { abstract val description: String + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitErrorExpression(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrExpression.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrExpression.kt index de8ea395714..59dfe66e994 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrExpression.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrExpression.kt @@ -28,4 +28,4 @@ abstract class IrExpression : IrElementBase(), IrStatement, IrVarargElement, IrA override fun transformChildren(transformer: IrElementTransformer, data: D) { // No children by default } -} \ No newline at end of file +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrFunctionExpression.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrFunctionExpression.kt index 51b566e52b7..53fd6735fb3 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrFunctionExpression.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrFunctionExpression.kt @@ -6,9 +6,22 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrFunctionExpression : IrExpression() { abstract val origin: IrStatementOrigin abstract var function: IrSimpleFunction + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitFunctionExpression(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + function.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + function = function.transform(transformer, data) as IrSimpleFunction + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetClass.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetClass.kt index 8fff5f7bb10..28dfb5b4a33 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetClass.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetClass.kt @@ -5,6 +5,20 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrGetClass : IrExpression() { abstract var argument: IrExpression + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitGetClass(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + argument.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + argument = argument.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetEnumValue.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetEnumValue.kt index 1a05cd98b99..134b7bd0797 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetEnumValue.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetEnumValue.kt @@ -6,7 +6,11 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrGetEnumValue : IrGetSingletonValue() { abstract override val symbol: IrEnumEntrySymbol + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitGetEnumValue(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetField.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetField.kt index 3807a7c9cac..d02ae855d1f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetField.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetField.kt @@ -5,4 +5,18 @@ package org.jetbrains.kotlin.ir.expressions -abstract class IrGetField : IrFieldAccessExpression() +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + +abstract class IrGetField : IrFieldAccessExpression() { + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitGetField(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + receiver?.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + receiver = receiver?.transform(transformer, data) + } +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetObjectValue.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetObjectValue.kt index c3ac6bcd457..a80fc6ffe57 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetObjectValue.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetObjectValue.kt @@ -6,7 +6,11 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrClassSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrGetObjectValue : IrGetSingletonValue() { abstract override val symbol: IrClassSymbol + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitGetObjectValue(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetValue.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetValue.kt index 30eb6299aff..44c7363394b 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetValue.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrGetValue.kt @@ -5,6 +5,11 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrGetValue : IrValueAccessExpression() { abstract fun copyWithOffsets(newStartOffset: Int, newEndOffset: Int): IrGetValue + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitGetValue(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrInstanceInitializerCall.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrInstanceInitializerCall.kt index 367eb41bd50..8011b52383c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrInstanceInitializerCall.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrInstanceInitializerCall.kt @@ -6,7 +6,11 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrClassSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrInstanceInitializerCall : IrExpression() { abstract val classSymbol: IrClassSymbol + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitInstanceInitializerCall(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrLocalDelegatedPropertyReference.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrLocalDelegatedPropertyReference.kt index 56e73f4fe6e..35680197850 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrLocalDelegatedPropertyReference.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrLocalDelegatedPropertyReference.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrLocalDelegatedPropertyReference : IrCallableReference(0) { abstract val delegate: IrVariableSymbol @@ -16,4 +17,7 @@ abstract class IrLocalDelegatedPropertyReference : IrCallableReference accept(visitor: IrElementVisitor, data: D): R = + visitor.visitLocalDelegatedPropertyReference(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrPropertyReference.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrPropertyReference.kt index 344f373638d..4a52b04763e 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrPropertyReference.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrPropertyReference.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrPropertyReference(typeArgumentsCount: Int) : IrCallableReference(typeArgumentsCount) { abstract val field: IrFieldSymbol? @@ -16,4 +17,7 @@ abstract class IrPropertyReference(typeArgumentsCount: Int) : IrCallableReferenc override val valueArgumentsCount: Int get() = 0 + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitPropertyReference(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrRawFunctionReference.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrRawFunctionReference.kt index afd71f289a6..3b5ca6e544f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrRawFunctionReference.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrRawFunctionReference.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor /** * Platform-specific low-level reference to function. @@ -15,4 +16,7 @@ import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol */ abstract class IrRawFunctionReference : IrDeclarationReference() { abstract override val symbol: IrFunctionSymbol + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitRawFunctionReference(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrReturn.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrReturn.kt index d0f2fba8535..1832eab3c45 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrReturn.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrReturn.kt @@ -6,8 +6,21 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrReturnTargetSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrReturn : IrExpression() { abstract var value: IrExpression abstract val returnTargetSymbol: IrReturnTargetSymbol + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitReturn(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + value.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + value = value.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSetField.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSetField.kt index ae041eaddf0..90000fa224b 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSetField.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSetField.kt @@ -5,6 +5,22 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrSetField : IrFieldAccessExpression() { abstract var value: IrExpression + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitSetField(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + receiver?.accept(visitor, data) + value.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + receiver = receiver?.transform(transformer, data) + value = value.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSetValue.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSetValue.kt index 9f68bea6603..7a437b0fbaa 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSetValue.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSetValue.kt @@ -6,8 +6,21 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrValueSymbol +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrSetValue : IrValueAccessExpression() { abstract override val symbol: IrValueSymbol abstract var value: IrExpression + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitSetValue(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + value.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + value = value.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSpreadElement.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSpreadElement.kt index 79179fec432..012064677f7 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSpreadElement.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSpreadElement.kt @@ -8,10 +8,22 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElementBase import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrSpreadElement : IrElementBase(), IrVarargElement { abstract var expression: IrExpression + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitSpreadElement(this, data) + override fun transform(transformer: IrElementTransformer, data: D): IrElement = accept(transformer, data) as IrSpreadElement + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + expression.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + expression = expression.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrStringConcatenation.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrStringConcatenation.kt index 33216f857a3..16fcadd1b55 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrStringConcatenation.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrStringConcatenation.kt @@ -5,6 +5,22 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrStringConcatenation : IrExpression() { abstract val arguments: MutableList + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitStringConcatenation(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + arguments.forEach { it.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + arguments.forEachIndexed { i, irExpression -> + arguments[i] = irExpression.transform(transformer, data) + } + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSuspendableExpression.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSuspendableExpression.kt index 5b63ff76d08..cd22cf82f36 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSuspendableExpression.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSuspendableExpression.kt @@ -5,7 +5,23 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrSuspendableExpression : IrExpression() { abstract var suspensionPointId: IrExpression abstract var result: IrExpression + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitSuspendableExpression(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + suspensionPointId.accept(visitor, data) + result.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + suspensionPointId = suspensionPointId.transform(transformer, data) + result = result.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSuspensionPoint.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSuspensionPoint.kt index c16bc8f1be3..e55c1b416f4 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSuspensionPoint.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSuspensionPoint.kt @@ -6,9 +6,26 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.declarations.IrVariable +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrSuspensionPoint : IrExpression() { abstract var suspensionPointIdParameter: IrVariable abstract var result: IrExpression abstract var resumeResult: IrExpression + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitSuspensionPoint(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + suspensionPointIdParameter.accept(visitor, data) + result.accept(visitor, data) + resumeResult.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + suspensionPointIdParameter = suspensionPointIdParameter.transform(transformer, data) as IrVariable + result = result.transform(transformer, data) + resumeResult = resumeResult.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSyntheticBody.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSyntheticBody.kt index 0faa852b399..b26dff9d499 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSyntheticBody.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrSyntheticBody.kt @@ -5,6 +5,20 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrSyntheticBody : IrBody() { abstract val kind: IrSyntheticBodyKind + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitSyntheticBody(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/expressions/IrThrow.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrThrow.kt index 8deca007772..92d88d2a05b 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrThrow.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrThrow.kt @@ -5,6 +5,20 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrThrow : IrExpression() { abstract var value: IrExpression + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitThrow(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + value.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + value = value.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrTry.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrTry.kt index 3c5d208cbb0..1ec8da00a18 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrTry.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrTry.kt @@ -5,10 +5,30 @@ package org.jetbrains.kotlin.ir.expressions +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + abstract class IrTry : IrExpression() { abstract var tryResult: IrExpression abstract val catches: MutableList abstract var finallyExpression: IrExpression? + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitTry(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + tryResult.accept(visitor, data) + catches.forEach { it.accept(visitor, data) } + finallyExpression?.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + tryResult = tryResult.transform(transformer, data) + catches.forEachIndexed { i, irCatch -> + catches[i] = irCatch.transform(transformer, data) + } + finallyExpression = finallyExpression?.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrTypeOperatorCall.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrTypeOperatorCall.kt index 2ca879c1efa..73266a69115 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrTypeOperatorCall.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrTypeOperatorCall.kt @@ -7,10 +7,23 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrTypeOperatorCall : IrExpression() { abstract val operator: IrTypeOperator abstract var argument: IrExpression abstract var typeOperand: IrType abstract val typeOperandClassifier: IrClassifierSymbol + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitTypeOperator(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + argument.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + argument = argument.transform(transformer, data) + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrVararg.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrVararg.kt index 91fcee44e04..6ebb1b389ce 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrVararg.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrVararg.kt @@ -6,9 +6,24 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrVararg : IrExpression() { abstract var varargElementType: IrType abstract val elements: MutableList + + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitVararg(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + elements.forEach { it.accept(visitor, data) } + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + elements.forEachIndexed { i, irVarargElement -> + elements[i] = irVarargElement.transform(transformer, data) as IrVarargElement + } + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrWhileLoop.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrWhileLoop.kt index 6f586d1d0ae..5ea62c7f347 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrWhileLoop.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrWhileLoop.kt @@ -5,4 +5,20 @@ package org.jetbrains.kotlin.ir.expressions -abstract class IrWhileLoop : IrLoop() +import org.jetbrains.kotlin.ir.visitors.IrElementTransformer +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor + +abstract class IrWhileLoop : IrLoop() { + override fun accept(visitor: IrElementVisitor, data: D): R = + visitor.visitWhileLoop(this, data) + + override fun acceptChildren(visitor: IrElementVisitor, data: D) { + condition.accept(visitor, data) + body?.accept(visitor, data) + } + + override fun transformChildren(transformer: IrElementTransformer, data: D) { + condition = condition.transform(transformer, data) + body = body?.transform(transformer, data) + } +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockImpl.kt index f887c5fc72c..e7e8d3e6814 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockImpl.kt @@ -25,8 +25,6 @@ import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrReturnableBlockSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrBlockImpl( override val startOffset: Int, @@ -43,9 +41,6 @@ class IrBlockImpl( ) : this(startOffset, endOffset, type, origin) { this.statements.addAll(statements) } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitBlock(this, data) } fun IrBlockImpl.addIfNotNull(statement: IrStatement?) { @@ -87,17 +82,4 @@ class IrReturnableBlockImpl( init { symbol.bind(this) } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitBlock(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) as IrStatement - } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBreakImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBreakImpl.kt index 95c9063b6e6..b6aebc443bc 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBreakImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBreakImpl.kt @@ -19,14 +19,10 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrBreak import org.jetbrains.kotlin.ir.expressions.IrLoop import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrBreakImpl( override val startOffset: Int, override val endOffset: Int, override var type: IrType, override var loop: IrLoop, -) : IrBreak() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitBreak(this, data) -} +) : IrBreak() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrCallImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrCallImpl.kt index b31e0dc04b9..88806bc11bc 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrCallImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrCallImpl.kt @@ -25,7 +25,6 @@ import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.render -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrCallImpl( override val startOffset: Int, @@ -43,9 +42,6 @@ class IrCallImpl( } } - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitCall(this, data) - companion object { @ObsoleteDescriptorBasedAPI fun fromSymbolDescriptor( diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrClassReferenceImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrClassReferenceImpl.kt index 19c113dda82..cc93ed04bed 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrClassReferenceImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrClassReferenceImpl.kt @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrClassReference import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrClassReferenceImpl( override val startOffset: Int, @@ -27,7 +26,4 @@ class IrClassReferenceImpl( override var type: IrType, override val symbol: IrClassifierSymbol, override var classType: IrType -) : IrClassReference() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitClassReference(this, data) -} +) : IrClassReference() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrCompositeImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrCompositeImpl.kt index f3253d69b3d..c6173a892b5 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrCompositeImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrCompositeImpl.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.expressions.IrComposite import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrCompositeImpl( override val startOffset: Int, @@ -37,7 +36,4 @@ class IrCompositeImpl( ) : this(startOffset, endOffset, type, origin) { this.statements.addAll(statements) } - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitComposite(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstImpl.kt index 64d54fc6755..961fd6fe090 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstImpl.kt @@ -19,8 +19,9 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.builtins.PrimitiveType import org.jetbrains.kotlin.ir.expressions.IrConst import org.jetbrains.kotlin.ir.expressions.IrConstKind -import org.jetbrains.kotlin.ir.types.* -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor +import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.types.getPrimitiveType +import org.jetbrains.kotlin.ir.types.isMarkedNullable class IrConstImpl( override val startOffset: Int, @@ -29,9 +30,6 @@ class IrConstImpl( override val kind: IrConstKind, override val value: T ) : IrConst() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitConst(this, data) - override fun copyWithOffsets(startOffset: Int, endOffset: Int) = IrConstImpl(startOffset, endOffset, type, kind, value) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstantObjectImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstantObjectImpl.kt index bbcdc1d81fc..ba0ee4ef823 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstantObjectImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstantObjectImpl.kt @@ -9,8 +9,6 @@ import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.constructedClassType -import org.jetbrains.kotlin.ir.util.transformInPlace -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.utils.SmartList @@ -29,18 +27,6 @@ class IrConstantPrimitiveImpl( (value.type.hashCode() * 31 + value.kind.hashCode()) * 31 + value.value.hashCode() override var type = value.type - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - value.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - value = value.transform(transformer, data) as IrConst<*> - } - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitConstantPrimitive(this, data) - } } class IrConstantObjectImpl constructor( @@ -77,14 +63,6 @@ class IrConstantObjectImpl constructor( } return res } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - valueArguments.forEach { value -> value.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - valueArguments.transformInPlace { it.transform(transformer, data) } - } } class IrConstantArrayImpl( @@ -108,16 +86,4 @@ class IrConstantArrayImpl( } return res } - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitConstantArray(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - elements.forEach { value -> value.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - elements.transformInPlace { value -> value.transform(transformer, data) } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstructorCallImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstructorCallImpl.kt index ec57aa47554..71e97d7296f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstructorCallImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrConstructorCallImpl.kt @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.parentAsClass -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrConstructorCallImpl( override val startOffset: Int, @@ -24,11 +23,7 @@ class IrConstructorCallImpl( valueArgumentsCount: Int, override val origin: IrStatementOrigin? = null, ) : IrConstructorCall(typeArgumentsCount, valueArgumentsCount) { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitConstructorCall(this, data) - companion object { - @ObsoleteDescriptorBasedAPI fun fromSymbolDescriptor( startOffset: Int, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrContinueImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrContinueImpl.kt index 1d6d47353d5..d38ae474727 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrContinueImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrContinueImpl.kt @@ -19,14 +19,10 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrContinue import org.jetbrains.kotlin.ir.expressions.IrLoop import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrContinueImpl( override val startOffset: Int, override val endOffset: Int, override var type: IrType, override var loop: IrLoop, -) : IrContinue() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitContinue(this, data) -} +) : IrContinue() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDelegatingConstructorCallImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDelegatingConstructorCallImpl.kt index d593b276cab..7ac54cbd877 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDelegatingConstructorCallImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDelegatingConstructorCallImpl.kt @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.ir.expressions.typeParametersCount import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.allTypeParameters -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrDelegatingConstructorCallImpl( override val startOffset: Int, @@ -36,10 +35,6 @@ class IrDelegatingConstructorCallImpl( override val origin: IrStatementOrigin? get() = null - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitDelegatingConstructorCall(this, data) - } - companion object { @ObsoleteDescriptorBasedAPI fun fromSymbolDescriptor( diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDoWhileLoopImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDoWhileLoopImpl.kt index 97bcba62db9..e192ec75fba 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDoWhileLoopImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDoWhileLoopImpl.kt @@ -19,26 +19,10 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrDoWhileLoop import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrDoWhileLoopImpl( override val startOffset: Int, override val endOffset: Int, override var type: IrType, override val origin: IrStatementOrigin?, -) : IrDoWhileLoop() { - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitDoWhileLoop(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - body?.accept(visitor, data) - condition.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - body = body?.transform(transformer, data) - condition = condition.transform(transformer, data) - } -} +) : IrDoWhileLoop() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDynamicMemberExpressionImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDynamicMemberExpressionImpl.kt index 65fec8717e8..a43b3ff0d1a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDynamicMemberExpressionImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDynamicMemberExpressionImpl.kt @@ -8,8 +8,6 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrDynamicMemberExpression import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrDynamicMemberExpressionImpl( override val startOffset: Int, @@ -17,15 +15,4 @@ class IrDynamicMemberExpressionImpl( override var type: IrType, override val memberName: String, override var receiver: IrExpression -) : IrDynamicMemberExpression() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitDynamicMemberExpression(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - receiver.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - receiver = receiver.transform(transformer, data) - } -} +) : IrDynamicMemberExpression() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDynamicOperatorExpressionImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDynamicOperatorExpressionImpl.kt index 6a7a81e9c63..3ce5500d61e 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDynamicOperatorExpressionImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrDynamicOperatorExpressionImpl.kt @@ -9,8 +9,6 @@ import org.jetbrains.kotlin.ir.expressions.IrDynamicOperator import org.jetbrains.kotlin.ir.expressions.IrDynamicOperatorExpression import org.jetbrains.kotlin.ir.expressions.IrExpression 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.utils.SmartList class IrDynamicOperatorExpressionImpl( @@ -22,21 +20,4 @@ class IrDynamicOperatorExpressionImpl( override lateinit var receiver: IrExpression override val arguments: MutableList = SmartList() - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitDynamicOperatorExpression(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - receiver.accept(visitor, data) - for (valueArgument in arguments) { - valueArgument.accept(visitor, data) - } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - receiver = receiver.transform(transformer, data) - for (i in arguments.indices) { - arguments[i] = arguments[i].transform(transformer, data) - } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrEnumConstructorCallImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrEnumConstructorCallImpl.kt index 07eddc0cb2d..7fa14955226 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrEnumConstructorCallImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrEnumConstructorCallImpl.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.expressions.IrEnumConstructorCall import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrEnumConstructorCallImpl( override val startOffset: Int, @@ -34,10 +33,6 @@ class IrEnumConstructorCallImpl( override val origin: IrStatementOrigin? get() = null - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitEnumConstructorCall(this, data) - } - companion object { @ObsoleteDescriptorBasedAPI fun fromSymbolDescriptor( diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrErrorCallExpressionImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrErrorCallExpressionImpl.kt index 4e26291dbf3..8940e05843f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrErrorCallExpressionImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrErrorCallExpressionImpl.kt @@ -19,8 +19,6 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrErrorCallExpression import org.jetbrains.kotlin.ir.expressions.IrExpression 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.utils.SmartList class IrErrorCallExpressionImpl( @@ -35,20 +33,4 @@ class IrErrorCallExpressionImpl( fun addArgument(argument: IrExpression) { arguments.add(argument) } - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitErrorCallExpression(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - explicitReceiver?.accept(visitor, data) - arguments.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - explicitReceiver = explicitReceiver?.transform(transformer, data) - arguments.forEachIndexed { i, irExpression -> - arguments[i] = irExpression.transform(transformer, data) - } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrErrorExpressionImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrErrorExpressionImpl.kt index d0efeb37b6f..c05c4d03524 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrErrorExpressionImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrErrorExpressionImpl.kt @@ -18,14 +18,10 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrErrorExpression import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrErrorExpressionImpl( override val startOffset: Int, override val endOffset: Int, override var type: IrType, override val description: String -) : IrErrorExpression() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitErrorExpression(this, data) -} +) : IrErrorExpression() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrFunctionExpressionImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrFunctionExpressionImpl.kt index 4ee8a1e996a..e0dac2af99c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrFunctionExpressionImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrFunctionExpressionImpl.kt @@ -9,8 +9,6 @@ import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction import org.jetbrains.kotlin.ir.expressions.IrFunctionExpression import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrFunctionExpressionImpl( override val startOffset: Int, @@ -18,16 +16,4 @@ class IrFunctionExpressionImpl( override var type: IrType, override var function: IrSimpleFunction, override val origin: IrStatementOrigin -) : IrFunctionExpression() { - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitFunctionExpression(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - function.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - function = function.transform(transformer, data) as IrSimpleFunction - } -} +) : IrFunctionExpression() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetClassImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetClassImpl.kt index 46241528227..5dde995f7cd 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetClassImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetClassImpl.kt @@ -19,24 +19,10 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrGetClass import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrGetClassImpl( override val startOffset: Int, override val endOffset: Int, override var type: IrType, override var argument: IrExpression, -) : IrGetClass() { - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitGetClass(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - argument.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - argument = argument.transform(transformer, data) - } -} +) : IrGetClass() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetEnumValueImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetEnumValueImpl.kt index 43536030561..3c8918c26aa 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetEnumValueImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetEnumValueImpl.kt @@ -19,15 +19,10 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrGetEnumValue import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrGetEnumValueImpl( override val startOffset: Int, override val endOffset: Int, override var type: IrType, override val symbol: IrEnumEntrySymbol, -) : IrGetEnumValue() { - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitGetEnumValue(this, data) - } -} +) : IrGetEnumValue() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetFieldImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetFieldImpl.kt index 8f8e6396211..b8895691ade 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetFieldImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetFieldImpl.kt @@ -22,8 +22,6 @@ import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrGetFieldImpl( override val startOffset: Int, @@ -43,16 +41,4 @@ class IrGetFieldImpl( ) : this(startOffset, endOffset, symbol, type, origin, superQualifierSymbol) { this.receiver = receiver } - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitGetField(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - receiver?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - receiver = receiver?.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetObjectValueImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetObjectValueImpl.kt index 4b2541cec62..df7385396b6 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetObjectValueImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetObjectValueImpl.kt @@ -16,18 +16,13 @@ package org.jetbrains.kotlin.ir.expressions.impl -import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrGetObjectValue import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrGetObjectValueImpl( override val startOffset: Int, override val endOffset: Int, override var type: IrType, override val symbol: IrClassSymbol -) : IrGetObjectValue() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitGetObjectValue(this, data) -} +) : IrGetObjectValue() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetValueImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetValueImpl.kt index e8f40498ae7..03aa4631d8f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetValueImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrGetValueImpl.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.ir.expressions.IrGetValue import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.symbols.IrValueSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrGetValueImpl( override val startOffset: Int, @@ -25,9 +24,6 @@ class IrGetValueImpl( origin: IrStatementOrigin? = null ) : this(startOffset, endOffset, symbol.owner.type, symbol, origin) - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitGetValue(this, data) - override fun copyWithOffsets(newStartOffset: Int, newEndOffset: Int): IrGetValue = IrGetValueImpl(newStartOffset, newEndOffset, type, symbol, origin) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrInstanceInitializerCallImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrInstanceInitializerCallImpl.kt index 504e6b00a7f..01b71691af2 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrInstanceInitializerCallImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrInstanceInitializerCallImpl.kt @@ -19,15 +19,10 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrInstanceInitializerCall import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrInstanceInitializerCallImpl( override val startOffset: Int, override val endOffset: Int, override val classSymbol: IrClassSymbol, override var type: IrType, -) : IrInstanceInitializerCall() { - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitInstanceInitializerCall(this, data) - } -} +) : IrInstanceInitializerCall() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrLocalDelegatedPropertyReferenceImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrLocalDelegatedPropertyReferenceImpl.kt index bf550554bdb..bc56c3d1e01 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrLocalDelegatedPropertyReferenceImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrLocalDelegatedPropertyReferenceImpl.kt @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.Name class IrLocalDelegatedPropertyReferenceImpl( @@ -50,7 +49,4 @@ class IrLocalDelegatedPropertyReferenceImpl( override fun putValueArgument(index: Int, valueArgument: IrExpression?): Unit = throwNoValueArguments() override fun removeValueArgument(index: Int): Unit = throwNoValueArguments() - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitLocalDelegatedPropertyReference(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrPropertyReferenceImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrPropertyReferenceImpl.kt index 4b5ec9c31c4..b5072c352aa 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrPropertyReferenceImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrPropertyReferenceImpl.kt @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol 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 class IrPropertyReferenceImpl( @@ -51,7 +50,4 @@ class IrPropertyReferenceImpl( override fun putValueArgument(index: Int, valueArgument: IrExpression?): Unit = throwNoValueArguments() override fun removeValueArgument(index: Int): Unit = throwNoValueArguments() - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitPropertyReference(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrRawFunctionReferenceImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrRawFunctionReferenceImpl.kt index 4b28c974caf..70f71679afa 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrRawFunctionReferenceImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrRawFunctionReferenceImpl.kt @@ -19,15 +19,10 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrRawFunctionReference import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrRawFunctionReferenceImpl( override val startOffset: Int, override val endOffset: Int, override var type: IrType, override val symbol: IrFunctionSymbol, -) : IrRawFunctionReference() { - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitRawFunctionReference(this, data) - } -} +) : IrRawFunctionReference() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrReturnImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrReturnImpl.kt index 7236533e18c..f9031319915 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrReturnImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrReturnImpl.kt @@ -20,8 +20,6 @@ import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrReturn import org.jetbrains.kotlin.ir.symbols.IrReturnTargetSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrReturnImpl( override val startOffset: Int, @@ -29,15 +27,4 @@ class IrReturnImpl( override var type: IrType, override val returnTargetSymbol: IrReturnTargetSymbol, override var value: IrExpression -) : IrReturn() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitReturn(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - value.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - value = value.transform(transformer, data) - } -} +) : IrReturn() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSetFieldImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSetFieldImpl.kt index 45341d65039..06f9534738c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSetFieldImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSetFieldImpl.kt @@ -22,8 +22,6 @@ import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrSetFieldImpl( override val startOffset: Int, @@ -47,18 +45,4 @@ class IrSetFieldImpl( } override lateinit var value: IrExpression - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitSetField(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - receiver?.accept(visitor, data) - value.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - receiver = receiver?.transform(transformer, data) - value = value.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSetValueImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSetValueImpl.kt index a7b87e92b33..cbbc4155a4f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSetValueImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSetValueImpl.kt @@ -21,8 +21,6 @@ import org.jetbrains.kotlin.ir.expressions.IrSetValue import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.symbols.IrValueSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrSetValueImpl( override val startOffset: Int, @@ -32,22 +30,9 @@ class IrSetValueImpl( override var value: IrExpression, override val origin: IrStatementOrigin? ) : IrSetValue() { - init { if (symbol.isBound) { assert(symbol.owner.isAssignable) { "Only assignable IrValues can be set" } } } - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitSetValue(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - value.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - value = value.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSpreadElementImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSpreadElementImpl.kt index 9f9b3f9d806..2f446dd3861 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSpreadElementImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSpreadElementImpl.kt @@ -18,23 +18,9 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrSpreadElement -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrSpreadElementImpl( override val startOffset: Int, override val endOffset: Int, override var expression: IrExpression, -) : IrSpreadElement() { - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitSpreadElement(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) - } -} +) : IrSpreadElement() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrStringConcatenationImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrStringConcatenationImpl.kt index 03390f7420b..ff987cb7a45 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrStringConcatenationImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrStringConcatenationImpl.kt @@ -19,8 +19,6 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrStringConcatenation import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrStringConcatenationImpl( override val startOffset: Int, @@ -37,17 +35,4 @@ class IrStringConcatenationImpl( } override val arguments: MutableList = ArrayList() - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitStringConcatenation(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - arguments.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - arguments.forEachIndexed { i, irExpression -> - arguments[i] = irExpression.transform(transformer, data) - } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSuspendImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSuspendImpl.kt index c796fc60cda..fe830ff8231 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSuspendImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSuspendImpl.kt @@ -10,8 +10,6 @@ import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrSuspendableExpression import org.jetbrains.kotlin.ir.expressions.IrSuspensionPoint import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrSuspensionPointImpl( override val startOffset: Int, @@ -20,22 +18,7 @@ class IrSuspensionPointImpl( override var suspensionPointIdParameter: IrVariable, override var result: IrExpression, override var resumeResult: IrExpression -) : IrSuspensionPoint() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitSuspensionPoint(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - suspensionPointIdParameter.accept(visitor, data) - result.accept(visitor, data) - resumeResult.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - suspensionPointIdParameter = suspensionPointIdParameter.transform(transformer, data) as IrVariable - result = result.transform(transformer, data) - resumeResult = resumeResult.transform(transformer, data) - } -} +) : IrSuspensionPoint() class IrSuspendableExpressionImpl( override val startOffset: Int, @@ -43,17 +26,4 @@ class IrSuspendableExpressionImpl( override var type: IrType, override var suspensionPointId: IrExpression, override var result: IrExpression -) : IrSuspendableExpression() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitSuspendableExpression(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - suspensionPointId.accept(visitor, data) - result.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - suspensionPointId = suspensionPointId.transform(transformer, data) - result = result.transform(transformer, data) - } -} +) : IrSuspendableExpression() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSyntheticBodyImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSyntheticBodyImpl.kt index 6104ce64b3d..ccc0c3efe92 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSyntheticBodyImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrSyntheticBodyImpl.kt @@ -18,26 +18,12 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrSyntheticBody import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrSyntheticBodyImpl( override val startOffset: Int, override val endOffset: Int, override val kind: IrSyntheticBodyKind ) : IrSyntheticBody() { - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitSyntheticBody(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - // no children - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - // no children - } - override fun toString(): String = "IrSyntheticBodyImpl($kind)" } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrThrowImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrThrowImpl.kt index 2d76c4a33cc..a82ff07343f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrThrowImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrThrowImpl.kt @@ -19,23 +19,10 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrThrow import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrThrowImpl( override val startOffset: Int, override val endOffset: Int, override var type: IrType, override var value: IrExpression, -) : IrThrow() { - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitThrow(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - value.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - value = value.transform(transformer, data) - } -} +) : IrThrow() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTryImpl.kt index d0f341911fb..3029e09a970 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTryImpl.kt @@ -21,8 +21,6 @@ import org.jetbrains.kotlin.ir.expressions.IrCatch import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrTry 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.utils.SmartList class IrTryImpl( @@ -48,24 +46,6 @@ class IrTryImpl( override val catches: MutableList = SmartList() override var finallyExpression: IrExpression? = null - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitTry(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - tryResult.accept(visitor, data) - catches.forEach { it.accept(visitor, data) } - finallyExpression?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - tryResult = tryResult.transform(transformer, data) - catches.forEachIndexed { i, irCatch -> - catches[i] = irCatch.transform(transformer, data) - } - finallyExpression = finallyExpression?.transform(transformer, data) - } } class IrCatchImpl( @@ -83,18 +63,4 @@ class IrCatchImpl( } override lateinit var result: IrExpression - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitCatch(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - catchParameter.accept(visitor, data) - result.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - catchParameter = catchParameter.transform(transformer, data) as IrVariable - result = result.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTypeOperatorCallImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTypeOperatorCallImpl.kt index 3f12c0a8e82..fea22e13b1f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTypeOperatorCallImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTypeOperatorCallImpl.kt @@ -22,8 +22,6 @@ import org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.classifierOrFail -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrTypeOperatorCallImpl( override val startOffset: Int, @@ -35,15 +33,4 @@ class IrTypeOperatorCallImpl( ) : IrTypeOperatorCall() { override val typeOperandClassifier: IrClassifierSymbol get() = typeOperand.classifierOrFail - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitTypeOperator(this, data) - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - argument.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - argument = argument.transform(transformer, data) - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrVarargImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrVarargImpl.kt index 552f1b99fb5..e0d9256a4e7 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrVarargImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrVarargImpl.kt @@ -19,8 +19,6 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrVararg import org.jetbrains.kotlin.ir.expressions.IrVarargElement 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.utils.SmartList class IrVarargImpl( @@ -40,18 +38,4 @@ class IrVarargImpl( } override val elements: MutableList = SmartList() - - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitVararg(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - elements.forEach { it.accept(visitor, data) } - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - elements.forEachIndexed { i, irVarargElement -> - elements[i] = irVarargElement.transform(transformer, data) as IrVarargElement - } - } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrWhenImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrWhenImpl.kt index d668cb54330..d9b08b73ae5 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrWhenImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrWhenImpl.kt @@ -18,8 +18,6 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrWhenImpl( override val startOffset: Int, @@ -48,12 +46,6 @@ open class IrBranchImpl( ) : IrBranch() { constructor(condition: IrExpression, result: IrExpression) : this(condition.startOffset, result.endOffset, condition, result) - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitBranch(this, data) - - override fun transform(transformer: IrElementTransformer, data: D): IrBranch = - transformer.visitBranch(this, data) } class IrElseBranchImpl( @@ -64,10 +56,4 @@ class IrElseBranchImpl( ) : IrElseBranch() { constructor(condition: IrExpression, result: IrExpression) : this(condition.startOffset, result.endOffset, condition, result) - - override fun accept(visitor: IrElementVisitor, data: D): R = - visitor.visitElseBranch(this, data) - - override fun transform(transformer: IrElementTransformer, data: D): IrElseBranch = - transformer.visitElseBranch(this, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrWhileLoopImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrWhileLoopImpl.kt index 0bb540e5810..4ff50588094 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrWhileLoopImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrWhileLoopImpl.kt @@ -19,26 +19,10 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.expressions.IrWhileLoop import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrWhileLoopImpl( override val startOffset: Int, override val endOffset: Int, override var type: IrType, override val origin: IrStatementOrigin?, -) : IrWhileLoop() { - override fun accept(visitor: IrElementVisitor, data: D): R { - return visitor.visitWhileLoop(this, data) - } - - override fun acceptChildren(visitor: IrElementVisitor, data: D) { - condition.accept(visitor, data) - body?.accept(visitor, data) - } - - override fun transformChildren(transformer: IrElementTransformer, data: D) { - condition = condition.transform(transformer, data) - body = body?.transform(transformer, data) - } -} +) : IrWhileLoop()