[FIR] Fix inference in presence of Unit expected type

This commit is contained in:
Dmitriy Novozhilov
2022-01-19 18:25:20 +03:00
committed by TeamCityServer
parent 8624d97f29
commit cd578e9d13
4 changed files with 7 additions and 16 deletions
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
import org.jetbrains.kotlin.fir.visitors.transformSingle
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.calls.inference.addEqualityConstraintIfCompatible
import org.jetbrains.kotlin.resolve.calls.inference.addSubtypeConstraintIfCompatible
import org.jetbrains.kotlin.resolve.calls.inference.buildAbstractResultingSubstitutor
import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintSystemCompletionMode
@@ -175,6 +176,9 @@ class FirCallCompleter(
system.addSubtypeConstraint(initialType, expectedType, expectedTypeConstraintPosition)
}
system.notFixedTypeVariables.isEmpty() -> return
expectedType.isUnit -> {
system.addEqualityConstraintIfCompatible(initialType, expectedType, expectedTypeConstraintPosition)
}
else -> {
system.addSubtypeConstraintIfCompatible(initialType, expectedType, expectedTypeConstraintPosition)
}