From 64944a1247a3cc6085c70a5679e844ac63d87cf4 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Wed, 17 Nov 2021 19:21:57 +0300 Subject: [PATCH] FIR: Register type variables properly in builder inference --- .../fir/resolve/inference/FirBuilderInferenceSession.kt | 4 ++-- 1 file changed, 2 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 47ae58694bf..5a0ca801efc 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 @@ -181,7 +181,7 @@ class FirBuilderInferenceSession( nonFixedToVariablesSubstitutor: ConeSubstitutor, shouldIntegrateAllConstraints: Boolean ): Boolean { - storage.notFixedTypeVariables.values.forEach { commonSystem.registerVariable(it.typeVariable) } + storage.notFixedTypeVariables.values.forEach { commonSystem.registerTypeVariableIfNotPresent(it.typeVariable) } /* * storage can contain the following substitutions: @@ -224,7 +224,7 @@ class FirBuilderInferenceSession( if (shouldIntegrateAllConstraints) { for ((variableConstructor, type) in storage.fixedTypeVariables) { val typeVariable = storage.allTypeVariables.getValue(variableConstructor) - commonSystem.registerVariable(typeVariable) + commonSystem.registerTypeVariableIfNotPresent(typeVariable) commonSystem.addEqualityConstraint((typeVariable as ConeTypeVariable).defaultType, type, BuilderInferencePosition) introducedConstraint = true }