From 20045ac0dc0c7a87f69670d7a490e01599980aa2 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 19 Oct 2022 11:02:05 +0300 Subject: [PATCH] [FIR] Replace uninferred type variables and stub types during builder inference --- .../fir/resolve/inference/FirBuilderInferenceSession.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt index e69a0552eee..0ecdb3e83df 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.resolve.calls.ImplicitExtensionReceiverValue import org.jetbrains.kotlin.fir.resolve.calls.ResolutionContext import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor +import org.jetbrains.kotlin.fir.resolve.substitution.replaceStubsAndTypeVariablesToErrors import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.visitors.FirDefaultTransformer import org.jetbrains.kotlin.fir.visitors.transformSingle @@ -127,7 +128,6 @@ class FirBuilderInferenceSession( } val context = commonSystem.asConstraintSystemCompleterContext() - @Suppress("UNCHECKED_CAST") components.callCompleter.completer.complete( context, completionMode, @@ -230,10 +230,11 @@ class FirBuilderInferenceSession( return introducedConstraint } - private fun getResultingSubstitutor(commonSystem: NewConstraintSystemImpl): ChainedSubstitutor { + private fun getResultingSubstitutor(commonSystem: NewConstraintSystemImpl): ConeSubstitutor { val nonFixedToVariablesSubstitutor = createNonFixedTypeToVariableSubstitutor() val commonSystemSubstitutor = commonSystem.buildCurrentSubstitutor() as ConeSubstitutor return ChainedSubstitutor(nonFixedToVariablesSubstitutor, commonSystemSubstitutor) + .replaceStubsAndTypeVariablesToErrors(resolutionContext.typeContext, stubsForPostponedVariables.values.map { it.constructor }) } private fun updateCalls(substitutor: ConeSubstitutor) {