[IR][provisional function expression] another line information provider added for func_expression -> function_reference conversion
This commit is contained in:
+21
-7
@@ -8,14 +8,14 @@ package org.jetbrains.kotlin.backend.common.lower
|
|||||||
import org.jetbrains.kotlin.backend.common.BodyLoweringPass
|
import org.jetbrains.kotlin.backend.common.BodyLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
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.IrDeclaration
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrBody
|
import org.jetbrains.kotlin.ir.declarations.IrVariable
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrCall
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrFunctionExpression
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.IrBlockImpl
|
import org.jetbrains.kotlin.ir.expressions.impl.IrBlockImpl
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl
|
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.IrElementTransformer
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
||||||
@@ -32,9 +32,23 @@ class ProvisionalFunctionExpressionLowering :
|
|||||||
irBody.transformChildren(this, ProvisionalFunctionExpressionLoweringContext())
|
irBody.transformChildren(this, ProvisionalFunctionExpressionLoweringContext())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitCall(expression: IrCall, data: ProvisionalFunctionExpressionLoweringContext): IrElement {
|
override fun visitCall(expression: IrCall, data: ProvisionalFunctionExpressionLoweringContext) = super.visitCall(
|
||||||
return super.visitCall(expression, ProvisionalFunctionExpressionLoweringContext(data, expression.startOffset, expression.endOffset))
|
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 {
|
override fun visitFunctionExpression(expression: IrFunctionExpression, data: ProvisionalFunctionExpressionLoweringContext): IrElement {
|
||||||
expression.transformChildren(this, ProvisionalFunctionExpressionLoweringContext(data))
|
expression.transformChildren(this, ProvisionalFunctionExpressionLoweringContext(data))
|
||||||
|
|||||||
Reference in New Issue
Block a user