diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt index c823e6581f1..1b9debea6b1 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt @@ -529,7 +529,12 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn whenExpression.transformChildren(this, data) if (whenExpression.resultType !is FirResolvedTypeRef) { val type = commonSuperType(whenExpression.branches.mapNotNull { - it.result.resultType + val expression = it.result.statements.lastOrNull() as? FirExpression + if (expression != null) { + (expression.resultType as? FirResolvedTypeRef) ?: FirErrorTypeRefImpl(session, null, "No type for when branch result") + } else { + FirImplicitUnitTypeRef(session, null) + } }) if (type != null) whenExpression.resultType = type }