From 68b84722c4a080de7c90b991bf00d73c045ba813 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 1 Jul 2020 12:09:56 +0300 Subject: [PATCH] [FIR2IR] Simplify generateWhen --- .../kotlin/fir/backend/Fir2IrVisitor.kt | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index c7d8401faf8..0b91a296fe7 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -616,8 +616,8 @@ class Fir2IrVisitor( generateWhen( startOffset, endOffset, IrStatementOrigin.ELVIS, - subjectVariable, irBranches, true, - elvisCall.typeRef + subjectVariable, irBranches, + elvisCall.typeRef.toIrType() ) } } @@ -660,10 +660,10 @@ class Fir2IrVisitor( generateWhen( startOffset, endOffset, origin, subjectVariable, irBranches, - whenExpression.isExhaustive && whenExpression.branches.none { - it.condition is FirElseIfTrueCondition && it.result.statements.isEmpty() - }, - whenExpression.typeRef + if (whenExpression.isExhaustive && whenExpression.branches.none { + it.condition is FirElseIfTrueCondition && it.result.statements.isEmpty() + } + ) whenExpression.typeRef.toIrType() else irBuiltIns.unitType ) } } @@ -675,14 +675,9 @@ class Fir2IrVisitor( origin: IrStatementOrigin?, subjectVariable: IrVariable?, branches: List, - isEffectivelyExhaustive: Boolean, - resultTypeRef: FirTypeRef + resultType: IrType ): IrExpression { - val irWhen = IrWhenImpl( - startOffset, endOffset, - if (isEffectivelyExhaustive) resultTypeRef.toIrType() else irBuiltIns.unitType, - origin, branches - ) + val irWhen = IrWhenImpl(startOffset, endOffset, resultType, origin, branches) return if (subjectVariable == null) { irWhen } else {