FIR2IR: cleanup implicit cast inserter

This commit is contained in:
Mikhail Glukhikh
2020-10-28 13:33:06 +03:00
committed by teamcityserver
parent 2424f2438c
commit 80108444ec
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.*
import org.jetbrains.kotlin.ir.expressions.impl.IrTypeOperatorCallImpl import org.jetbrains.kotlin.ir.expressions.impl.IrTypeOperatorCallImpl
import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.util.coerceToUnit
import org.jetbrains.kotlin.ir.util.coerceToUnitIfNeeded import org.jetbrains.kotlin.ir.util.coerceToUnitIfNeeded
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@@ -120,7 +119,7 @@ class Fir2IrImplicitCastInserter(
} }
val firBranchMap = irWhen.branches.zip(whenExpression.branches).toMap() val firBranchMap = irWhen.branches.zip(whenExpression.branches).toMap()
irWhen.branches.replaceAll { irWhen.branches.replaceAll {
visitWhenBranch(firBranchMap[it]!!, it) visitWhenBranch(firBranchMap.getValue(it), it)
} }
return data return data
} }
@@ -233,9 +232,8 @@ class Fir2IrImplicitCastInserter(
if (irStatement !is IrErrorCallExpression && irStatement is IrExpression) { if (irStatement !is IrErrorCallExpression && irStatement is IrExpression) {
if (i != lastIndex) { if (i != lastIndex) {
statements[i] = irStatement.coerceToUnitIfNeeded(irStatement.type, irBuiltIns) statements[i] = irStatement.coerceToUnitIfNeeded(irStatement.type, irBuiltIns)
} else {
// TODO: for the last statement, need to cast to the return type if mismatched
} }
// TODO: for the last statement, need to cast to the return type if mismatched
} }
} }