From 3f715e671da25db001a3e05f9235af54837eb265 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 4 Feb 2021 15:23:45 +0300 Subject: [PATCH] [FIR] Fix checking for null exhaustiveness with expression of Nothing? type --- .../transformers/FirWhenExhaustivenessTransformer.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirWhenExhaustivenessTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirWhenExhaustivenessTransformer.kt index 0cc124b1727..93fe1316437 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirWhenExhaustivenessTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirWhenExhaustivenessTransformer.kt @@ -97,6 +97,10 @@ class FirWhenExhaustivenessTransformer(private val bodyResolveComponents: BodyRe } } is FirQualifiedAccessExpression -> { + if (argument.typeRef.isNullableNothing) { + data.containsNull = true + return + } val reference = argument.calleeReference as? FirResolvedNamedReference ?: return val symbol = (reference.resolvedSymbol.fir as? FirEnumEntry)?.symbol ?: return @@ -185,6 +189,12 @@ class FirWhenExhaustivenessTransformer(private val bodyResolveComponents: BodyRe is FirResolvedQualifier -> { argument.typeRef.accept(this, data) } + + is FirQualifiedAccessExpression -> { + if (argument.typeRef.isNullableNothing) { + data.containsNull = true + } + } } } }