From c1ca219767df526ffb913b078c310e63786542e1 Mon Sep 17 00:00:00 2001 From: Justin Garcia Date: Thu, 15 Feb 2024 20:30:14 +0800 Subject: [PATCH] Add the add_constraint function --- crates/analyzer-module/src/infer/rules.rs | 6 +++++- crates/analyzer-module/src/infer/rules/common.rs | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/analyzer-module/src/infer/rules.rs b/crates/analyzer-module/src/infer/rules.rs index ae7eaacd..112ff1d2 100644 --- a/crates/analyzer-module/src/infer/rules.rs +++ b/crates/analyzer-module/src/infer/rules.rs @@ -16,7 +16,7 @@ use crate::{ id::InFile, infer::pretty_print, scope::ResolveInfo, surface::tree::*, InferenceDatabase, }; -use super::{CoreType, CoreTypeId, Hint, InferenceResult}; +use super::{Constraint, CoreType, CoreTypeId, Hint, InferenceResult}; use recursive::{recursive_data_groups, recursive_let_names, recursive_value_groups}; @@ -58,6 +58,10 @@ impl<'a> InferContext<'a> { fn current_hints(&self) -> Arc<[Hint]> { Arc::from(self.state.hints.as_slice()) } + + fn add_constraint(&mut self, constraint: Constraint) { + self.result.constraints.push(constraint) + } } type UnificationDeferred = (Arc<[Hint]>, InFile, InFile); diff --git a/crates/analyzer-module/src/infer/rules/common.rs b/crates/analyzer-module/src/infer/rules/common.rs index 41a4d126..14c84a7b 100644 --- a/crates/analyzer-module/src/infer/rules/common.rs +++ b/crates/analyzer-module/src/infer/rules/common.rs @@ -158,14 +158,14 @@ impl InferContext<'_> { } (CoreType::Unification(x_u), CoreType::Unification(y_u)) => { if x_u != y_u { - self.result.constraints.push(Constraint::UnifyDeep(hints, x_u, y_u)); + self.add_constraint(Constraint::UnifyDeep(hints, x_u, y_u)); } } (CoreType::Unification(x_u), _) => { - self.result.constraints.push(Constraint::UnifySolve(hints, x_u, y_id)); + self.add_constraint(Constraint::UnifySolve(hints, x_u, y_id)); } (_, CoreType::Unification(y_u)) => { - self.result.constraints.push(Constraint::UnifySolve(hints, y_u, x_id)); + self.add_constraint(Constraint::UnifySolve(hints, y_u, x_id)); } (CoreType::Constructor(x_c), CoreType::Constructor(y_c)) => if x_c != y_c {}, (CoreType::Primitive(x_p), CoreType::Primitive(y_p)) => {