diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt index 766c655fed0..b15a35a9534 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt @@ -123,6 +123,7 @@ fun generateDestructuringBlock( } this.isVar = isVar symbol = FirPropertySymbol(entry.name) // TODO? + source = entry.source isLocal = true status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL) annotations += entry.annotations diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt index c3532a3dc64..0cfec02bd6b 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt @@ -1020,6 +1020,7 @@ class DeclarationsConverter( private fun convertDestructingDeclaration(destructingDeclaration: LighterASTNode): DestructuringDeclaration { var isVar = false val entries = mutableListOf>() + val source = destructingDeclaration.toFirSourceElement() var firExpression: FirExpression = buildErrorExpression(null, ConeSimpleDiagnostic("Destructuring declaration without initializer", DiagnosticKind.Syntax)) destructingDeclaration.forEachChildren { @@ -1031,7 +1032,7 @@ class DeclarationsConverter( } } - return DestructuringDeclaration(isVar, entries, firExpression) + return DestructuringDeclaration(isVar, entries, firExpression, source) } /** diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt index aad736f28e2..765246daee9 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.lightTree.fir import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.builder.generateTemporaryVariable import org.jetbrains.kotlin.fir.declarations.FirVariable import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -14,10 +15,11 @@ import org.jetbrains.kotlin.fir.lightTree.converter.generateDestructuringBlock data class DestructuringDeclaration( val isVar: Boolean, val entries: List>, - val initializer: FirExpression + val initializer: FirExpression, + val source: FirSourceElement ) { fun toFirDestructingDeclaration(session: FirSession): FirExpression { - val baseVariable = generateTemporaryVariable(session, initializer.source, "destruct", initializer) + val baseVariable = generateTemporaryVariable(session, source, "destruct", initializer) return generateDestructuringBlock(session, this, baseVariable, tmpVariable = true) } } \ No newline at end of file