[AA] KtExpressionInfoProvider.getMissingCases: fix no subject case

return missing else branch (even if it's present, see kdoc)

^ KT-62875 fixed
This commit is contained in:
Anna Kozlova
2023-10-24 22:09:45 +02:00
committed by Space Team
parent 19104f73bf
commit e79bc5bb59
12 changed files with 103 additions and 1 deletions
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.declarations.utils.isExpect
import org.jetbrains.kotlin.fir.declarations.utils.modality
import org.jetbrains.kotlin.fir.enumWhenTracker
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.ExhaustivenessStatus.NotExhaustive
import org.jetbrains.kotlin.fir.expressions.impl.FirElseIfTrueCondition
import org.jetbrains.kotlin.fir.reportEnumUsageInWhen
import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents
@@ -43,7 +44,8 @@ class FirWhenExhaustivenessTransformer(private val bodyResolveComponents: BodyRe
)
fun computeAllMissingCases(session: FirSession, whenExpression: FirWhenExpression): List<WhenMissingCase> {
val subjectType = getSubjectType(session, whenExpression) ?: return emptyList()
val subjectType =
getSubjectType(session, whenExpression) ?: return NotExhaustive.NO_ELSE_BRANCH.reasons
return buildList {
for (type in subjectType.unwrapIntersectionType()) {
val checkers = getCheckers(type, session)