diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/visitors/IrElementTransformerVoid.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/visitors/IrElementTransformerVoid.kt index 97763392f46..ca223db6f8d 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/visitors/IrElementTransformerVoid.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/visitors/IrElementTransformerVoid.kt @@ -22,314 +22,6 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* abstract class IrElementTransformerVoid : IrElementTransformer { - open fun visitElement(element: IrElement): IrElement { - element.transformChildren(this, null) - return element - } - - final override fun visitElement(element: IrElement, data: Nothing?): IrElement = visitElement(element) - - open fun visitModuleFragment(declaration: IrModuleFragment): IrModuleFragment { - declaration.transformChildren(this, null) - return declaration - } - - final override fun visitModuleFragment(declaration: IrModuleFragment, data: Nothing?): IrModuleFragment = - visitModuleFragment(declaration) - - open fun visitPackageFragment(declaration: IrPackageFragment): IrPackageFragment { - declaration.transformChildren(this, null) - return declaration - } - - final override fun visitPackageFragment(declaration: IrPackageFragment, data: Nothing?): IrElement = visitPackageFragment(declaration) - - open fun visitFile(declaration: IrFile): IrFile = visitPackageFragment(declaration) as IrFile - final override fun visitFile(declaration: IrFile, data: Nothing?): IrFile = visitFile(declaration) - - open fun visitExternalPackageFragment(declaration: IrExternalPackageFragment): IrExternalPackageFragment = - visitPackageFragment(declaration) as IrExternalPackageFragment - - final override fun visitExternalPackageFragment(declaration: IrExternalPackageFragment, data: Nothing?): IrExternalPackageFragment = - visitExternalPackageFragment(declaration) - - open fun visitDeclaration(declaration: IrDeclarationBase): IrStatement { - declaration.transformChildren(this, null) - return declaration - } - - final override fun visitDeclaration(declaration: IrDeclarationBase, data: Nothing?): IrStatement = visitDeclaration(declaration) - - open fun visitScript(declaration: IrScript) = visitDeclaration(declaration) - final override fun visitScript(declaration: IrScript, data: Nothing?) = visitScript(declaration) - - open fun visitClass(declaration: IrClass) = visitDeclaration(declaration) - final override fun visitClass(declaration: IrClass, data: Nothing?) = visitClass(declaration) - - open fun visitFunction(declaration: IrFunction) = visitDeclaration(declaration) - final override fun visitFunction(declaration: IrFunction, data: Nothing?) = visitFunction(declaration) - - open fun visitSimpleFunction(declaration: IrSimpleFunction) = visitFunction(declaration) - final override fun visitSimpleFunction(declaration: IrSimpleFunction, data: Nothing?) = visitSimpleFunction(declaration) - - open fun visitConstructor(declaration: IrConstructor) = visitFunction(declaration) - final override fun visitConstructor(declaration: IrConstructor, data: Nothing?) = visitConstructor(declaration) - - open fun visitProperty(declaration: IrProperty) = visitDeclaration(declaration) - final override fun visitProperty(declaration: IrProperty, data: Nothing?) = visitProperty(declaration) - - open fun visitField(declaration: IrField) = visitDeclaration(declaration) - final override fun visitField(declaration: IrField, data: Nothing?) = visitField(declaration) - - open fun visitLocalDelegatedProperty(declaration: IrLocalDelegatedProperty) = visitDeclaration(declaration) - final override fun visitLocalDelegatedProperty(declaration: IrLocalDelegatedProperty, data: Nothing?) = - visitLocalDelegatedProperty(declaration) - - open fun visitEnumEntry(declaration: IrEnumEntry) = visitDeclaration(declaration) - final override fun visitEnumEntry(declaration: IrEnumEntry, data: Nothing?) = visitEnumEntry(declaration) - - open fun visitAnonymousInitializer(declaration: IrAnonymousInitializer) = visitDeclaration(declaration) - final override fun visitAnonymousInitializer(declaration: IrAnonymousInitializer, data: Nothing?) = - visitAnonymousInitializer(declaration) - - open fun visitTypeParameter(declaration: IrTypeParameter) = visitDeclaration(declaration) - final override fun visitTypeParameter(declaration: IrTypeParameter, data: Nothing?): IrStatement = visitTypeParameter(declaration) - - open fun visitValueParameter(declaration: IrValueParameter) = visitDeclaration(declaration) - final override fun visitValueParameter(declaration: IrValueParameter, data: Nothing?): IrStatement = visitValueParameter(declaration) - - open fun visitVariable(declaration: IrVariable) = visitDeclaration(declaration) - final override fun visitVariable(declaration: IrVariable, data: Nothing?) = visitVariable(declaration) - - open fun visitTypeAlias(declaration: IrTypeAlias) = visitDeclaration(declaration) - final override fun visitTypeAlias(declaration: IrTypeAlias, data: Nothing?) = visitTypeAlias(declaration) - - open fun visitBody(body: IrBody): IrBody { - body.transformChildren(this, null) - return body - } - - final override fun visitBody(body: IrBody, data: Nothing?): IrBody = visitBody(body) - - open fun visitExpressionBody(body: IrExpressionBody) = visitBody(body) - final override fun visitExpressionBody(body: IrExpressionBody, data: Nothing?) = visitExpressionBody(body) - - open fun visitBlockBody(body: IrBlockBody) = visitBody(body) - final override fun visitBlockBody(body: IrBlockBody, data: Nothing?) = visitBlockBody(body) - - open fun visitSyntheticBody(body: IrSyntheticBody) = visitBody(body) - final override fun visitSyntheticBody(body: IrSyntheticBody, data: Nothing?) = visitSyntheticBody(body) - - open fun visitSuspendableExpression(expression: IrSuspendableExpression) = visitExpression(expression) - final override fun visitSuspendableExpression(expression: IrSuspendableExpression, data: Nothing?) = - visitSuspendableExpression(expression) - - open fun visitSuspensionPoint(expression: IrSuspensionPoint) = visitExpression(expression) - final override fun visitSuspensionPoint(expression: IrSuspensionPoint, data: Nothing?) = visitSuspensionPoint(expression) - - open fun visitExpression(expression: IrExpression): IrExpression { - expression.transformChildren(this, null) - return expression - } - - final override fun visitExpression(expression: IrExpression, data: Nothing?): IrExpression = visitExpression(expression) - - open fun visitConst(expression: IrConst<*>) = visitExpression(expression) - final override fun visitConst(expression: IrConst<*>, data: Nothing?) = visitConst(expression) - - open fun visitConstantValue(expression: IrConstantValue): IrConstantValue { - expression.transformChildren(this, null) - return expression - } - - final override fun visitConstantValue(expression: IrConstantValue, data: Nothing?) = visitConstantValue(expression) - - open fun visitConstantObject(expression: IrConstantObject) = visitConstantValue(expression) - final override fun visitConstantObject(expression: IrConstantObject, data: Nothing?) = visitConstantObject(expression) - - open fun visitConstantPrimitive(expression: IrConstantPrimitive) = visitConstantValue(expression) - final override fun visitConstantPrimitive(expression: IrConstantPrimitive, data: Nothing?) = visitConstantPrimitive(expression) - - open fun visitConstantArray(expression: IrConstantArray) = visitConstantValue(expression) - final override fun visitConstantArray(expression: IrConstantArray, data: Nothing?) = visitConstantArray(expression) - - open fun visitVararg(expression: IrVararg) = visitExpression(expression) - final override fun visitVararg(expression: IrVararg, data: Nothing?) = visitVararg(expression) - - open fun visitSpreadElement(spread: IrSpreadElement): IrSpreadElement { - spread.transformChildren(this, null) - return spread - } - - final override fun visitSpreadElement(spread: IrSpreadElement, data: Nothing?): IrSpreadElement = visitSpreadElement(spread) - - open fun visitContainerExpression(expression: IrContainerExpression) = visitExpression(expression) - final override fun visitContainerExpression(expression: IrContainerExpression, data: Nothing?) = visitContainerExpression(expression) - - open fun visitBlock(expression: IrBlock) = visitContainerExpression(expression) - final override fun visitBlock(expression: IrBlock, data: Nothing?) = visitBlock(expression) - - open fun visitComposite(expression: IrComposite) = visitContainerExpression(expression) - final override fun visitComposite(expression: IrComposite, data: Nothing?) = visitComposite(expression) - - open fun visitStringConcatenation(expression: IrStringConcatenation) = visitExpression(expression) - final override fun visitStringConcatenation(expression: IrStringConcatenation, data: Nothing?) = visitStringConcatenation(expression) - - open fun visitDeclarationReference(expression: IrDeclarationReference) = visitExpression(expression) - final override fun visitDeclarationReference(expression: IrDeclarationReference, data: Nothing?) = visitDeclarationReference(expression) - - open fun visitSingletonReference(expression: IrGetSingletonValue) = visitDeclarationReference(expression) - final override fun visitSingletonReference(expression: IrGetSingletonValue, data: Nothing?) = visitSingletonReference(expression) - - open fun visitGetObjectValue(expression: IrGetObjectValue) = visitSingletonReference(expression) - final override fun visitGetObjectValue(expression: IrGetObjectValue, data: Nothing?) = visitGetObjectValue(expression) - - open fun visitGetEnumValue(expression: IrGetEnumValue) = visitSingletonReference(expression) - final override fun visitGetEnumValue(expression: IrGetEnumValue, data: Nothing?) = visitGetEnumValue(expression) - - open fun visitValueAccess(expression: IrValueAccessExpression) = visitDeclarationReference(expression) - final override fun visitValueAccess(expression: IrValueAccessExpression, data: Nothing?) = visitValueAccess(expression) - - open fun visitGetValue(expression: IrGetValue) = visitValueAccess(expression) - final override fun visitGetValue(expression: IrGetValue, data: Nothing?) = visitGetValue(expression) - - open fun visitSetValue(expression: IrSetValue) = visitValueAccess(expression) - final override fun visitSetValue(expression: IrSetValue, data: Nothing?) = visitSetValue(expression) - - open fun visitFieldAccess(expression: IrFieldAccessExpression) = visitDeclarationReference(expression) - final override fun visitFieldAccess(expression: IrFieldAccessExpression, data: Nothing?) = visitFieldAccess(expression) - - open fun visitGetField(expression: IrGetField) = visitFieldAccess(expression) - final override fun visitGetField(expression: IrGetField, data: Nothing?) = visitGetField(expression) - - open fun visitSetField(expression: IrSetField) = visitFieldAccess(expression) - final override fun visitSetField(expression: IrSetField, data: Nothing?) = visitSetField(expression) - - open fun visitMemberAccess(expression: IrMemberAccessExpression<*>) = visitDeclarationReference(expression) - final override fun visitMemberAccess(expression: IrMemberAccessExpression<*>, data: Nothing?) = visitMemberAccess(expression) - - open fun visitFunctionAccess(expression: IrFunctionAccessExpression) = visitMemberAccess(expression) - final override fun visitFunctionAccess(expression: IrFunctionAccessExpression, data: Nothing?) = visitFunctionAccess(expression) - - open fun visitCall(expression: IrCall) = visitFunctionAccess(expression) - final override fun visitCall(expression: IrCall, data: Nothing?) = visitCall(expression) - - open fun visitConstructorCall(expression: IrConstructorCall) = visitFunctionAccess(expression) - final override fun visitConstructorCall(expression: IrConstructorCall, data: Nothing?) = visitConstructorCall(expression) - - open fun visitDelegatingConstructorCall(expression: IrDelegatingConstructorCall) = visitFunctionAccess(expression) - final override fun visitDelegatingConstructorCall(expression: IrDelegatingConstructorCall, data: Nothing?) = - visitDelegatingConstructorCall(expression) - - open fun visitEnumConstructorCall(expression: IrEnumConstructorCall) = visitFunctionAccess(expression) - final override fun visitEnumConstructorCall(expression: IrEnumConstructorCall, data: Nothing?) = visitEnumConstructorCall(expression) - - open fun visitGetClass(expression: IrGetClass) = visitExpression(expression) - final override fun visitGetClass(expression: IrGetClass, data: Nothing?) = visitGetClass(expression) - - open fun visitCallableReference(expression: IrCallableReference<*>) = visitMemberAccess(expression) - final override fun visitCallableReference(expression: IrCallableReference<*>, data: Nothing?) = visitCallableReference(expression) - - open fun visitFunctionReference(expression: IrFunctionReference) = visitCallableReference(expression) - final override fun visitFunctionReference(expression: IrFunctionReference, data: Nothing?): IrElement = - visitFunctionReference(expression) - - open fun visitPropertyReference(expression: IrPropertyReference) = visitCallableReference(expression) - final override fun visitPropertyReference(expression: IrPropertyReference, data: Nothing?): IrElement = - visitPropertyReference(expression) - - open fun visitLocalDelegatedPropertyReference(expression: IrLocalDelegatedPropertyReference) = visitCallableReference(expression) - final override fun visitLocalDelegatedPropertyReference(expression: IrLocalDelegatedPropertyReference, data: Nothing?) = - visitLocalDelegatedPropertyReference(expression) - - open fun visitRawFunctionReference(expression: IrRawFunctionReference) = visitDeclarationReference(expression) - final override fun visitRawFunctionReference(expression: IrRawFunctionReference, data: Nothing?) = - visitRawFunctionReference(expression) - - open fun visitFunctionExpression(expression: IrFunctionExpression) = visitExpression(expression) - final override fun visitFunctionExpression(expression: IrFunctionExpression, data: Nothing?): IrElement = - visitFunctionExpression(expression) - - open fun visitClassReference(expression: IrClassReference) = visitDeclarationReference(expression) - final override fun visitClassReference(expression: IrClassReference, data: Nothing?) = visitClassReference(expression) - - open fun visitInstanceInitializerCall(expression: IrInstanceInitializerCall) = visitExpression(expression) - final override fun visitInstanceInitializerCall(expression: IrInstanceInitializerCall, data: Nothing?) = - visitInstanceInitializerCall(expression) - - open fun visitTypeOperator(expression: IrTypeOperatorCall) = visitExpression(expression) - final override fun visitTypeOperator(expression: IrTypeOperatorCall, data: Nothing?) = visitTypeOperator(expression) - - open fun visitWhen(expression: IrWhen) = visitExpression(expression) - final override fun visitWhen(expression: IrWhen, data: Nothing?) = visitWhen(expression) - - open fun visitBranch(branch: IrBranch): IrBranch { - branch.transformChildren(this, null) - return branch - } - - final override fun visitBranch(branch: IrBranch, data: Nothing?): IrBranch = visitBranch(branch) - - open fun visitElseBranch(branch: IrElseBranch): IrElseBranch { - branch.transformChildren(this, null) - return branch - } - - final override fun visitElseBranch(branch: IrElseBranch, data: Nothing?): IrElseBranch = visitElseBranch(branch) - - open fun visitLoop(loop: IrLoop) = visitExpression(loop) - final override fun visitLoop(loop: IrLoop, data: Nothing?) = visitLoop(loop) - - open fun visitWhileLoop(loop: IrWhileLoop) = visitLoop(loop) - final override fun visitWhileLoop(loop: IrWhileLoop, data: Nothing?) = visitWhileLoop(loop) - - open fun visitDoWhileLoop(loop: IrDoWhileLoop) = visitLoop(loop) - final override fun visitDoWhileLoop(loop: IrDoWhileLoop, data: Nothing?) = visitDoWhileLoop(loop) - - open fun visitTry(aTry: IrTry) = visitExpression(aTry) - final override fun visitTry(aTry: IrTry, data: Nothing?) = visitTry(aTry) - - open fun visitCatch(aCatch: IrCatch): IrCatch { - aCatch.transformChildren(this, null) - return aCatch - } - - final override fun visitCatch(aCatch: IrCatch, data: Nothing?): IrCatch = visitCatch(aCatch) - - open fun visitBreakContinue(jump: IrBreakContinue) = visitExpression(jump) - final override fun visitBreakContinue(jump: IrBreakContinue, data: Nothing?) = visitBreakContinue(jump) - - open fun visitBreak(jump: IrBreak) = visitBreakContinue(jump) - final override fun visitBreak(jump: IrBreak, data: Nothing?) = visitBreak(jump) - - open fun visitContinue(jump: IrContinue) = visitBreakContinue(jump) - final override fun visitContinue(jump: IrContinue, data: Nothing?) = visitContinue(jump) - - open fun visitReturn(expression: IrReturn) = visitExpression(expression) - final override fun visitReturn(expression: IrReturn, data: Nothing?) = visitReturn(expression) - - open fun visitThrow(expression: IrThrow) = visitExpression(expression) - final override fun visitThrow(expression: IrThrow, data: Nothing?) = visitThrow(expression) - - open fun visitDynamicExpression(expression: IrDynamicExpression) = visitExpression(expression) - final override fun visitDynamicExpression(expression: IrDynamicExpression, data: Nothing?) = visitDynamicExpression(expression) - - open fun visitDynamicOperatorExpression(expression: IrDynamicOperatorExpression) = visitDynamicExpression(expression) - final override fun visitDynamicOperatorExpression(expression: IrDynamicOperatorExpression, data: Nothing?) = - visitDynamicOperatorExpression(expression) - - open fun visitDynamicMemberExpression(expression: IrDynamicMemberExpression) = visitDynamicExpression(expression) - final override fun visitDynamicMemberExpression(expression: IrDynamicMemberExpression, data: Nothing?) = - visitDynamicMemberExpression(expression) - - open fun visitErrorDeclaration(declaration: IrErrorDeclaration) = visitDeclaration(declaration) - final override fun visitErrorDeclaration(declaration: IrErrorDeclaration, data: Nothing?) = visitErrorDeclaration(declaration) - - open fun visitErrorExpression(expression: IrErrorExpression) = visitExpression(expression) - final override fun visitErrorExpression(expression: IrErrorExpression, data: Nothing?) = visitErrorExpression(expression) - - open fun visitErrorCallExpression(expression: IrErrorCallExpression) = visitErrorExpression(expression) - final override fun visitErrorCallExpression(expression: IrErrorCallExpression, data: Nothing?) = visitErrorCallExpression(expression) protected inline fun T.transformPostfix(body: T.() -> Unit): T { transformChildrenVoid() @@ -340,6 +32,527 @@ abstract class IrElementTransformerVoid : IrElementTransformer { protected fun IrElement.transformChildrenVoid() { transformChildrenVoid(this@IrElementTransformerVoid) } + + open fun visitElement(element: IrElement): IrElement { + element.transformChildren(this, null) + return element + } + + final override fun visitElement(element: IrElement, data: Nothing?): IrElement = + visitElement(element) + + open fun visitDeclaration(declaration: IrDeclarationBase): IrStatement { + declaration.transformChildren(this, null) + return declaration + } + + final override fun visitDeclaration(declaration: IrDeclarationBase, data: Nothing?): IrStatement = + visitDeclaration(declaration) + + open fun visitValueParameter(declaration: IrValueParameter): IrStatement = + visitDeclaration(declaration) + + final override fun visitValueParameter(declaration: IrValueParameter, data: Nothing?): IrStatement = + visitValueParameter(declaration) + + open fun visitClass(declaration: IrClass): IrStatement = + visitDeclaration(declaration) + + final override fun visitClass(declaration: IrClass, data: Nothing?): IrStatement = + visitClass(declaration) + + open fun visitAnonymousInitializer(declaration: IrAnonymousInitializer): IrStatement = + visitDeclaration(declaration) + + final override fun visitAnonymousInitializer(declaration: IrAnonymousInitializer, data: Nothing?): IrStatement = + visitAnonymousInitializer(declaration) + + open fun visitTypeParameter(declaration: IrTypeParameter): IrStatement = + visitDeclaration(declaration) + + final override fun visitTypeParameter(declaration: IrTypeParameter, data: Nothing?): IrStatement = + visitTypeParameter(declaration) + + open fun visitFunction(declaration: IrFunction): IrStatement = + visitDeclaration(declaration) + + final override fun visitFunction(declaration: IrFunction, data: Nothing?): IrStatement = + visitFunction(declaration) + + open fun visitConstructor(declaration: IrConstructor): IrStatement = + visitFunction(declaration) + + final override fun visitConstructor(declaration: IrConstructor, data: Nothing?): IrStatement = + visitConstructor(declaration) + + open fun visitEnumEntry(declaration: IrEnumEntry): IrStatement = + visitDeclaration(declaration) + + final override fun visitEnumEntry(declaration: IrEnumEntry, data: Nothing?): IrStatement = + visitEnumEntry(declaration) + + open fun visitErrorDeclaration(declaration: IrErrorDeclaration): IrStatement = + visitDeclaration(declaration) + + final override fun visitErrorDeclaration(declaration: IrErrorDeclaration, data: Nothing?): IrStatement = + visitErrorDeclaration(declaration) + + open fun visitField(declaration: IrField): IrStatement = + visitDeclaration(declaration) + + final override fun visitField(declaration: IrField, data: Nothing?): IrStatement = + visitField(declaration) + + open fun visitLocalDelegatedProperty(declaration: IrLocalDelegatedProperty): IrStatement = + visitDeclaration(declaration) + + final override fun visitLocalDelegatedProperty(declaration: IrLocalDelegatedProperty, data: Nothing?): IrStatement = + visitLocalDelegatedProperty(declaration) + + open fun visitModuleFragment(declaration: IrModuleFragment): IrModuleFragment { + declaration.transformChildren(this, null) + return declaration + } + + final override fun visitModuleFragment(declaration: IrModuleFragment, data: Nothing?): IrModuleFragment = + visitModuleFragment(declaration) + + open fun visitProperty(declaration: IrProperty): IrStatement = + visitDeclaration(declaration) + + final override fun visitProperty(declaration: IrProperty, data: Nothing?): IrStatement = + visitProperty(declaration) + + open fun visitScript(declaration: IrScript): IrStatement = + visitDeclaration(declaration) + + final override fun visitScript(declaration: IrScript, data: Nothing?): IrStatement = + visitScript(declaration) + + open fun visitSimpleFunction(declaration: IrSimpleFunction): IrStatement = + visitFunction(declaration) + + final override fun visitSimpleFunction(declaration: IrSimpleFunction, data: Nothing?): IrStatement = + visitSimpleFunction(declaration) + + open fun visitTypeAlias(declaration: IrTypeAlias): IrStatement = + visitDeclaration(declaration) + + final override fun visitTypeAlias(declaration: IrTypeAlias, data: Nothing?): IrStatement = + visitTypeAlias(declaration) + + open fun visitVariable(declaration: IrVariable): IrStatement = + visitDeclaration(declaration) + + final override fun visitVariable(declaration: IrVariable, data: Nothing?): IrStatement = + visitVariable(declaration) + + open fun visitPackageFragment(declaration: IrPackageFragment): IrPackageFragment { + declaration.transformChildren(this, null) + return declaration + } + + final override fun visitPackageFragment(declaration: IrPackageFragment, data: Nothing?): IrElement = + visitPackageFragment(declaration) + + open fun visitExternalPackageFragment(declaration: IrExternalPackageFragment): IrExternalPackageFragment = + visitPackageFragment(declaration) as IrExternalPackageFragment + + final override fun visitExternalPackageFragment(declaration: IrExternalPackageFragment, data: Nothing?): IrExternalPackageFragment = + visitExternalPackageFragment(declaration) + + open fun visitFile(declaration: IrFile): IrFile = + visitPackageFragment(declaration) as IrFile + + final override fun visitFile(declaration: IrFile, data: Nothing?): IrFile = + visitFile(declaration) + + open fun visitExpression(expression: IrExpression): IrExpression { + expression.transformChildren(this, null) + return expression + } + + final override fun visitExpression(expression: IrExpression, data: Nothing?): IrExpression = + visitExpression(expression) + + open fun visitBody(body: IrBody): IrBody { + body.transformChildren(this, null) + return body + } + + final override fun visitBody(body: IrBody, data: Nothing?): IrBody = + visitBody(body) + + open fun visitExpressionBody(body: IrExpressionBody): IrBody = + visitBody(body) + + final override fun visitExpressionBody(body: IrExpressionBody, data: Nothing?): IrBody = + visitExpressionBody(body) + + open fun visitBlockBody(body: IrBlockBody): IrBody = + visitBody(body) + + final override fun visitBlockBody(body: IrBlockBody, data: Nothing?): IrBody = + visitBlockBody(body) + + open fun visitDeclarationReference(expression: IrDeclarationReference): IrExpression = + visitExpression(expression) + + final override fun visitDeclarationReference(expression: IrDeclarationReference, data: Nothing?): IrExpression = + visitDeclarationReference(expression) + + open fun visitMemberAccess(expression: IrMemberAccessExpression<*>): IrExpression = + visitDeclarationReference(expression) + + final override fun visitMemberAccess(expression: IrMemberAccessExpression<*>, data: Nothing?): IrExpression = + visitMemberAccess(expression) + + open fun visitFunctionAccess(expression: IrFunctionAccessExpression): IrExpression = + visitMemberAccess(expression) + + final override fun visitFunctionAccess(expression: IrFunctionAccessExpression, data: Nothing?): IrExpression = + visitFunctionAccess(expression) + + open fun visitConstructorCall(expression: IrConstructorCall): IrExpression = + visitFunctionAccess(expression) + + final override fun visitConstructorCall(expression: IrConstructorCall, data: Nothing?): IrExpression = + visitConstructorCall(expression) + + open fun visitSingletonReference(expression: IrGetSingletonValue): IrExpression = + visitDeclarationReference(expression) + + final override fun visitSingletonReference(expression: IrGetSingletonValue, data: Nothing?): IrExpression = + visitSingletonReference(expression) + + open fun visitGetObjectValue(expression: IrGetObjectValue): IrExpression = + visitSingletonReference(expression) + + final override fun visitGetObjectValue(expression: IrGetObjectValue, data: Nothing?): IrExpression = + visitGetObjectValue(expression) + + open fun visitGetEnumValue(expression: IrGetEnumValue): IrExpression = + visitSingletonReference(expression) + + final override fun visitGetEnumValue(expression: IrGetEnumValue, data: Nothing?): IrExpression = + visitGetEnumValue(expression) + + open fun visitRawFunctionReference(expression: IrRawFunctionReference): IrExpression = + visitDeclarationReference(expression) + + final override fun visitRawFunctionReference(expression: IrRawFunctionReference, data: Nothing?): IrExpression = + visitRawFunctionReference(expression) + + open fun visitContainerExpression(expression: IrContainerExpression): IrExpression = + visitExpression(expression) + + final override fun visitContainerExpression(expression: IrContainerExpression, data: Nothing?): IrExpression = + visitContainerExpression(expression) + + open fun visitBlock(expression: IrBlock): IrExpression = + visitContainerExpression(expression) + + final override fun visitBlock(expression: IrBlock, data: Nothing?): IrExpression = + visitBlock(expression) + + open fun visitComposite(expression: IrComposite): IrExpression = + visitContainerExpression(expression) + + final override fun visitComposite(expression: IrComposite, data: Nothing?): IrExpression = + visitComposite(expression) + + open fun visitSyntheticBody(body: IrSyntheticBody): IrBody = + visitBody(body) + + final override fun visitSyntheticBody(body: IrSyntheticBody, data: Nothing?): IrBody = + visitSyntheticBody(body) + + open fun visitBreakContinue(jump: IrBreakContinue): IrExpression = + visitExpression(jump) + + final override fun visitBreakContinue(jump: IrBreakContinue, data: Nothing?): IrExpression = + visitBreakContinue(jump) + + open fun visitBreak(jump: IrBreak): IrExpression = + visitBreakContinue(jump) + + final override fun visitBreak(jump: IrBreak, data: Nothing?): IrExpression = + visitBreak(jump) + + open fun visitContinue(jump: IrContinue): IrExpression = + visitBreakContinue(jump) + + final override fun visitContinue(jump: IrContinue, data: Nothing?): IrExpression = + visitContinue(jump) + + open fun visitCall(expression: IrCall): IrExpression = + visitFunctionAccess(expression) + + final override fun visitCall(expression: IrCall, data: Nothing?): IrExpression = + visitCall(expression) + + open fun visitCallableReference(expression: IrCallableReference<*>): IrExpression = + visitMemberAccess(expression) + + final override fun visitCallableReference(expression: IrCallableReference<*>, data: Nothing?): IrExpression = + visitCallableReference(expression) + + open fun visitFunctionReference(expression: IrFunctionReference): IrExpression = + visitCallableReference(expression) + + final override fun visitFunctionReference(expression: IrFunctionReference, data: Nothing?): IrElement = + visitFunctionReference(expression) + + open fun visitPropertyReference(expression: IrPropertyReference): IrExpression = + visitCallableReference(expression) + + final override fun visitPropertyReference(expression: IrPropertyReference, data: Nothing?): IrElement = + visitPropertyReference(expression) + + open fun visitLocalDelegatedPropertyReference(expression: IrLocalDelegatedPropertyReference): IrExpression = + visitCallableReference(expression) + + final override fun visitLocalDelegatedPropertyReference(expression: IrLocalDelegatedPropertyReference, data: Nothing?): IrExpression = + visitLocalDelegatedPropertyReference(expression) + + open fun visitClassReference(expression: IrClassReference): IrExpression = + visitDeclarationReference(expression) + + final override fun visitClassReference(expression: IrClassReference, data: Nothing?): IrExpression = + visitClassReference(expression) + + open fun visitConst(expression: IrConst<*>): IrExpression = + visitExpression(expression) + + final override fun visitConst(expression: IrConst<*>, data: Nothing?): IrExpression = + visitConst(expression) + + open fun visitConstantValue(expression: IrConstantValue): IrConstantValue { + expression.transformChildren(this, null) + return expression + } + + final override fun visitConstantValue(expression: IrConstantValue, data: Nothing?): IrConstantValue = + visitConstantValue(expression) + + open fun visitConstantPrimitive(expression: IrConstantPrimitive): IrConstantValue = + visitConstantValue(expression) + + final override fun visitConstantPrimitive(expression: IrConstantPrimitive, data: Nothing?): IrConstantValue = + visitConstantPrimitive(expression) + + open fun visitConstantObject(expression: IrConstantObject): IrConstantValue = + visitConstantValue(expression) + + final override fun visitConstantObject(expression: IrConstantObject, data: Nothing?): IrConstantValue { + return visitConstantObject(expression) + } + + open fun visitConstantArray(expression: IrConstantArray): IrConstantValue = + visitConstantValue(expression) + + final override fun visitConstantArray(expression: IrConstantArray, data: Nothing?): IrConstantValue = + visitConstantArray(expression) + + open fun visitDelegatingConstructorCall(expression: IrDelegatingConstructorCall): IrExpression = + visitFunctionAccess(expression) + + final override fun visitDelegatingConstructorCall(expression: IrDelegatingConstructorCall, data: Nothing?): IrExpression = + visitDelegatingConstructorCall(expression) + + open fun visitDynamicExpression(expression: IrDynamicExpression): IrExpression = + visitExpression(expression) + + final override fun visitDynamicExpression(expression: IrDynamicExpression, data: Nothing?): IrExpression = + visitDynamicExpression(expression) + + open fun visitDynamicOperatorExpression(expression: IrDynamicOperatorExpression): IrExpression = + visitDynamicExpression(expression) + + final override fun visitDynamicOperatorExpression(expression: IrDynamicOperatorExpression, data: Nothing?): IrExpression = + visitDynamicOperatorExpression(expression) + + open fun visitDynamicMemberExpression(expression: IrDynamicMemberExpression): IrExpression = + visitDynamicExpression(expression) + + final override fun visitDynamicMemberExpression(expression: IrDynamicMemberExpression, data: Nothing?): IrExpression = + visitDynamicMemberExpression(expression) + + open fun visitEnumConstructorCall(expression: IrEnumConstructorCall): IrExpression = + visitFunctionAccess(expression) + + final override fun visitEnumConstructorCall(expression: IrEnumConstructorCall, data: Nothing?): IrExpression = + visitEnumConstructorCall(expression) + + open fun visitErrorExpression(expression: IrErrorExpression): IrExpression = + visitExpression(expression) + + final override fun visitErrorExpression(expression: IrErrorExpression, data: Nothing?): IrExpression = + visitErrorExpression(expression) + + open fun visitErrorCallExpression(expression: IrErrorCallExpression): IrExpression = + visitErrorExpression(expression) + + final override fun visitErrorCallExpression(expression: IrErrorCallExpression, data: Nothing?): IrExpression = + visitErrorCallExpression(expression) + + open fun visitFieldAccess(expression: IrFieldAccessExpression): IrExpression = + visitDeclarationReference(expression) + + final override fun visitFieldAccess(expression: IrFieldAccessExpression, data: Nothing?): IrExpression = + visitFieldAccess(expression) + + open fun visitGetField(expression: IrGetField): IrExpression = + visitFieldAccess(expression) + + final override fun visitGetField(expression: IrGetField, data: Nothing?): IrExpression = + visitGetField(expression) + + open fun visitSetField(expression: IrSetField): IrExpression = + visitFieldAccess(expression) + + final override fun visitSetField(expression: IrSetField, data: Nothing?): IrExpression = + visitSetField(expression) + + open fun visitFunctionExpression(expression: IrFunctionExpression): IrExpression = + visitExpression(expression) + + final override fun visitFunctionExpression(expression: IrFunctionExpression, data: Nothing?): IrElement = + visitFunctionExpression(expression) + + open fun visitGetClass(expression: IrGetClass): IrExpression = + visitExpression(expression) + + final override fun visitGetClass(expression: IrGetClass, data: Nothing?): IrExpression = + visitGetClass(expression) + + open fun visitInstanceInitializerCall(expression: IrInstanceInitializerCall): IrExpression = + visitExpression(expression) + + final override fun visitInstanceInitializerCall(expression: IrInstanceInitializerCall, data: Nothing?): IrExpression = + visitInstanceInitializerCall(expression) + + open fun visitLoop(loop: IrLoop): IrExpression = + visitExpression(loop) + + final override fun visitLoop(loop: IrLoop, data: Nothing?): IrExpression = + visitLoop(loop) + + open fun visitWhileLoop(loop: IrWhileLoop): IrExpression = + visitLoop(loop) + + final override fun visitWhileLoop(loop: IrWhileLoop, data: Nothing?): IrExpression = + visitWhileLoop(loop) + + open fun visitDoWhileLoop(loop: IrDoWhileLoop): IrExpression = + visitLoop(loop) + + final override fun visitDoWhileLoop(loop: IrDoWhileLoop, data: Nothing?): IrExpression = + visitDoWhileLoop(loop) + + open fun visitReturn(expression: IrReturn): IrExpression = + visitExpression(expression) + + final override fun visitReturn(expression: IrReturn, data: Nothing?): IrExpression = + visitReturn(expression) + + open fun visitStringConcatenation(expression: IrStringConcatenation): IrExpression = + visitExpression(expression) + + final override fun visitStringConcatenation(expression: IrStringConcatenation, data: Nothing?): IrExpression = + visitStringConcatenation(expression) + + open fun visitSuspensionPoint(expression: IrSuspensionPoint): IrExpression = + visitExpression(expression) + + final override fun visitSuspensionPoint(expression: IrSuspensionPoint, data: Nothing?): IrExpression = + visitSuspensionPoint(expression) + + open fun visitSuspendableExpression(expression: IrSuspendableExpression): IrExpression = + visitExpression(expression) + + final override fun visitSuspendableExpression(expression: IrSuspendableExpression, data: Nothing?): IrExpression = + visitSuspendableExpression(expression) + + open fun visitThrow(expression: IrThrow): IrExpression = + visitExpression(expression) + + final override fun visitThrow(expression: IrThrow, data: Nothing?): IrExpression = + visitThrow(expression) + + open fun visitTry(aTry: IrTry): IrExpression = + visitExpression(aTry) + + final override fun visitTry(aTry: IrTry, data: Nothing?): IrExpression = + visitTry(aTry) + + open fun visitCatch(aCatch: IrCatch): IrCatch { + aCatch.transformChildren(this, null) + return aCatch + } + + final override fun visitCatch(aCatch: IrCatch, data: Nothing?): IrCatch = + visitCatch(aCatch) + + open fun visitTypeOperator(expression: IrTypeOperatorCall): IrExpression = + visitExpression(expression) + + final override fun visitTypeOperator(expression: IrTypeOperatorCall, data: Nothing?): IrExpression = + visitTypeOperator(expression) + + open fun visitValueAccess(expression: IrValueAccessExpression): IrExpression = + visitDeclarationReference(expression) + + final override fun visitValueAccess(expression: IrValueAccessExpression, data: Nothing?): IrExpression = + visitValueAccess(expression) + + open fun visitGetValue(expression: IrGetValue): IrExpression = + visitValueAccess(expression) + + final override fun visitGetValue(expression: IrGetValue, data: Nothing?): IrExpression = + visitGetValue(expression) + + open fun visitSetValue(expression: IrSetValue): IrExpression = + visitValueAccess(expression) + + final override fun visitSetValue(expression: IrSetValue, data: Nothing?): IrExpression = + visitSetValue(expression) + + open fun visitVararg(expression: IrVararg): IrExpression = + visitExpression(expression) + + final override fun visitVararg(expression: IrVararg, data: Nothing?): IrExpression = + visitVararg(expression) + + open fun visitSpreadElement(spread: IrSpreadElement): IrSpreadElement { + spread.transformChildren(this, null) + return spread + } + + final override fun visitSpreadElement(spread: IrSpreadElement, data: Nothing?): IrSpreadElement = + visitSpreadElement(spread) + + open fun visitWhen(expression: IrWhen): IrExpression = + visitExpression(expression) + + final override fun visitWhen(expression: IrWhen, data: Nothing?): IrExpression = + visitWhen(expression) + + open fun visitBranch(branch: IrBranch): IrBranch { + branch.transformChildren(this, null) + return branch + } + + final override fun visitBranch(branch: IrBranch, data: Nothing?): IrBranch = + visitBranch(branch) + + open fun visitElseBranch(branch: IrElseBranch): IrElseBranch { + branch.transformChildren(this, null) + return branch + } + + final override fun visitElseBranch(branch: IrElseBranch, data: Nothing?): IrElseBranch = + visitElseBranch(branch) } fun IrElement.transformChildrenVoid(transformer: IrElementTransformerVoid) {