From a1b223e33d7aa8531ae6b1206fc7f7caeea9b501 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Thu, 16 Sep 2021 13:54:00 +0700 Subject: [PATCH] [JS IR] Set proper statement origin for bound receiver save --- .../kotlin/ir/backend/js/lower/CallableReferenceLowering.kt | 5 ++++- .../org/jetbrains/kotlin/ir/builders/ExpressionHelpers.kt | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/CallableReferenceLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/CallableReferenceLowering.kt index da28a095c24..91e02b6bc71 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/CallableReferenceLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/CallableReferenceLowering.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.backend.common.CommonBackendContext import org.jetbrains.kotlin.backend.common.ir.copyTo import org.jetbrains.kotlin.backend.common.ir.createImplicitParameterDeclarationWithWrappedDescriptor import org.jetbrains.kotlin.backend.common.ir.moveBodyTo +import org.jetbrains.kotlin.backend.common.lower.LoweredStatementOrigins import org.jetbrains.kotlin.ir.backend.js.JsStatementOrigins import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.runOnFilePostfix @@ -186,7 +187,9 @@ class CallableReferenceLowering(private val context: CommonBackendContext) : Bod } } boundReceiverParameter?.let { - +irSetField(irGet(clazz.thisReceiver!!), boundReceiverField!!, irGet(it)) + +irSetField(irGet(clazz.thisReceiver!!), boundReceiverField!!, irGet(it), + LoweredStatementOrigins.STATEMENT_ORIGIN_INITIALIZER_OF_FIELD_FOR_CAPTURED_VALUE + ) } +IrInstanceInitializerCallImpl(startOffset, endOffset, clazz.symbol, context.irBuiltIns.unitType) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/ExpressionHelpers.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/ExpressionHelpers.kt index 7d619a66e25..a9ccaef95d3 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/ExpressionHelpers.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/ExpressionHelpers.kt @@ -141,8 +141,8 @@ fun IrBuilderWithScope.irSet(variable: IrValueDeclaration, value: IrExpression, fun IrBuilderWithScope.irGetField(receiver: IrExpression?, field: IrField) = IrGetFieldImpl(startOffset, endOffset, field.symbol, field.type, receiver) -fun IrBuilderWithScope.irSetField(receiver: IrExpression?, field: IrField, value: IrExpression) = - IrSetFieldImpl(startOffset, endOffset, field.symbol, receiver, value, context.irBuiltIns.unitType) +fun IrBuilderWithScope.irSetField(receiver: IrExpression?, field: IrField, value: IrExpression, origin: IrStatementOrigin? = null) = + IrSetFieldImpl(startOffset, endOffset, field.symbol, receiver, value, context.irBuiltIns.unitType, origin = origin) fun IrBuilderWithScope.irGetObjectValue(type: IrType, classSymbol: IrClassSymbol) = IrGetObjectValueImpl(startOffset, endOffset, type, classSymbol)