From 6a7ed96be587d4c703c45ecc674536adf7c31fa7 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Wed, 26 Aug 2020 14:13:44 +0300 Subject: [PATCH] Consider T <: Nothing! as trivial during constraint incorporation #KT-41149 In Progress --- .../components/TrivialConstraintTypeInferenceOracle.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/TrivialConstraintTypeInferenceOracle.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/TrivialConstraintTypeInferenceOracle.kt index 2174c009a62..683a1eea659 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/TrivialConstraintTypeInferenceOracle.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/TrivialConstraintTypeInferenceOracle.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.resolve.calls.inference.components import org.jetbrains.kotlin.resolve.calls.inference.model.Constraint import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintKind import org.jetbrains.kotlin.types.model.KotlinTypeMarker +import org.jetbrains.kotlin.types.model.SimpleTypeMarker import org.jetbrains.kotlin.types.model.TypeSystemInferenceExtensionContext import org.jetbrains.kotlin.types.model.TypeSystemInferenceExtensionContextDelegate @@ -63,7 +64,10 @@ class TrivialConstraintTypeInferenceOracle private constructor(context: TypeSyst private fun KotlinTypeMarker.containsOnlyNonNullableNothing(): Boolean = - contains { it.isNothing() } && !contains { it.isNullableNothing() } + contains { + (it.isNothing() || it.isFlexibleNothing()) && + !(it is SimpleTypeMarker && it.typeConstructor().isNothingConstructor() && it.isMarkedNullable()) + } companion object {