From ecbae02f1740cc708a5cde8720da23399dcab57b Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Tue, 25 May 2021 20:24:16 +0200 Subject: [PATCH] [IR][provisional function expression] another line information provider added for func_expression -> function_reference conversion --- .../ProvisionalFunctionExpressionLowering.kt | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ProvisionalFunctionExpressionLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ProvisionalFunctionExpressionLowering.kt index c879efd341c..2ef8d275597 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ProvisionalFunctionExpressionLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ProvisionalFunctionExpressionLowering.kt @@ -8,14 +8,14 @@ package org.jetbrains.kotlin.backend.common.lower import org.jetbrains.kotlin.backend.common.BodyLoweringPass import org.jetbrains.kotlin.backend.common.FileLoweringPass import org.jetbrains.kotlin.ir.IrElement +import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.declarations.IrDeclaration import org.jetbrains.kotlin.ir.declarations.IrFile -import org.jetbrains.kotlin.ir.expressions.IrBody -import org.jetbrains.kotlin.ir.expressions.IrCall -import org.jetbrains.kotlin.ir.expressions.IrExpression -import org.jetbrains.kotlin.ir.expressions.IrFunctionExpression +import org.jetbrains.kotlin.ir.declarations.IrVariable +import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.IrBlockImpl import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl +import org.jetbrains.kotlin.ir.util.remapTypes import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid @@ -32,9 +32,23 @@ class ProvisionalFunctionExpressionLowering : irBody.transformChildren(this, ProvisionalFunctionExpressionLoweringContext()) } - override fun visitCall(expression: IrCall, data: ProvisionalFunctionExpressionLoweringContext): IrElement { - return super.visitCall(expression, ProvisionalFunctionExpressionLoweringContext(data, expression.startOffset, expression.endOffset)) - } + override fun visitCall(expression: IrCall, data: ProvisionalFunctionExpressionLoweringContext) = super.visitCall( + expression, + ProvisionalFunctionExpressionLoweringContext( + data, + expression.startOffset, + expression.endOffset + ) + ) + + override fun visitVariable(declaration: IrVariable, data: ProvisionalFunctionExpressionLoweringContext) = super.visitVariable( + declaration, + ProvisionalFunctionExpressionLoweringContext( + data, + declaration.startOffset, + declaration.endOffset + ) + ) override fun visitFunctionExpression(expression: IrFunctionExpression, data: ProvisionalFunctionExpressionLoweringContext): IrElement { expression.transformChildren(this, ProvisionalFunctionExpressionLoweringContext(data))