From b3d0a0a1c8a678caf4d3f2284e6be874fad721c4 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Tue, 7 Mar 2023 16:05:47 +0100 Subject: [PATCH] FIR LT: support labelled destructured declarations add missing conversion in the LT to FIR converter #KT-56759 fixed --- .../kotlin/fir/lightTree/converter/DeclarationsConverter.kt | 2 +- .../kotlin/fir/lightTree/converter/ExpressionsConverter.kt | 1 + compiler/testData/codegen/box/labels/labeledDeclarations.kt | 3 +-- 3 files changed, 3 insertions(+), 3 deletions(-) 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 4054947a684..ba1c4fec029 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 @@ -1331,7 +1331,7 @@ class DeclarationsConverter( /** * @see org.jetbrains.kotlin.fir.builder.RawFirBuilder.Visitor.visitDestructuringDeclaration */ - private fun convertDestructingDeclaration(destructingDeclaration: LighterASTNode): DestructuringDeclaration { + internal fun convertDestructingDeclaration(destructingDeclaration: LighterASTNode): DestructuringDeclaration { var modifiers = Modifier() var isVar = false val entries = mutableListOf() diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt index aeb9dd6381e..7e408ffeb0b 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt @@ -126,6 +126,7 @@ class ExpressionsConverter( OBJECT_LITERAL -> declarationsConverter.convertObjectLiteral(expression) FUN -> declarationsConverter.convertFunctionDeclaration(expression) + DESTRUCTURING_DECLARATION -> declarationsConverter.convertDestructingDeclaration(expression).toFirDestructingDeclaration(baseModuleData) else -> buildErrorExpression(null, ConeSimpleDiagnostic(errorReason, DiagnosticKind.ExpressionExpected)) } } diff --git a/compiler/testData/codegen/box/labels/labeledDeclarations.kt b/compiler/testData/codegen/box/labels/labeledDeclarations.kt index b9d9f2fc7ef..6170213869d 100644 --- a/compiler/testData/codegen/box/labels/labeledDeclarations.kt +++ b/compiler/testData/codegen/box/labels/labeledDeclarations.kt @@ -1,5 +1,4 @@ -// IGNORE_BACKEND_K2_LIGHT_TREE: JVM_IR -// Reason: KT-56759 + data class A(val a: Int, val b: Int) fun box() : String