From 54eb4cf928a0fb7be73d2d735c7092150a8ccde9 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 2 Sep 2019 11:12:35 +0300 Subject: [PATCH] [FIR] Add synthetic else branch to `when` if it's missing to LightTreeFirBuilder --- .../kotlin/fir/lightTree/converter/ExpressionsConverter.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt index a965952edbc..823a63d42a9 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt @@ -497,6 +497,7 @@ class ExpressionsConverter( if (hasSubject) { subject.bind(this) } + var thereIsElse = false for (entry in whenEntries) { val branch = entry.firBlock branches += if (!entry.isElse) { @@ -508,11 +509,15 @@ class ExpressionsConverter( FirWhenBranchImpl(null, firCondition, branch) } } else { + thereIsElse = true FirWhenBranchImpl( null, FirElseIfTrueCondition(null), branch ) } } + if (!thereIsElse) { + branches += FirWhenBranchImpl(null, FirElseIfTrueCondition(null), FirEmptyExpressionBlock()) + } } }