aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/infer/unify.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_ty/src/infer/unify.rs')
-rw-r--r--crates/hir_ty/src/infer/unify.rs17
1 files changed, 6 insertions, 11 deletions
diff --git a/crates/hir_ty/src/infer/unify.rs b/crates/hir_ty/src/infer/unify.rs
index 4738ec08a..5b7b423fa 100644
--- a/crates/hir_ty/src/infer/unify.rs
+++ b/crates/hir_ty/src/infer/unify.rs
@@ -7,8 +7,8 @@ use ena::unify::{InPlaceUnificationTable, NoError, UnifyKey, UnifyValue};
7 7
8use super::{InferenceContext, Obligation}; 8use super::{InferenceContext, Obligation};
9use crate::{ 9use crate::{
10 AliasEq, AliasTy, BoundVar, Canonical, DebruijnIndex, FnPointer, GenericPredicate, 10 AliasEq, AliasTy, BoundVar, Canonical, DebruijnIndex, FnPointer, InEnvironment, InferenceVar,
11 InEnvironment, InferenceVar, Interner, Scalar, Substitution, Ty, TyKind, TypeWalk, 11 Interner, Scalar, Substitution, Ty, TyKind, TypeWalk, WhereClause,
12}; 12};
13 13
14impl<'a> InferenceContext<'a> { 14impl<'a> InferenceContext<'a> {
@@ -382,21 +382,16 @@ impl InferenceTable {
382 } 382 }
383 } 383 }
384 384
385 fn unify_preds( 385 fn unify_preds(&mut self, pred1: &WhereClause, pred2: &WhereClause, depth: usize) -> bool {
386 &mut self,
387 pred1: &GenericPredicate,
388 pred2: &GenericPredicate,
389 depth: usize,
390 ) -> bool {
391 match (pred1, pred2) { 386 match (pred1, pred2) {
392 (GenericPredicate::Implemented(tr1), GenericPredicate::Implemented(tr2)) 387 (WhereClause::Implemented(tr1), WhereClause::Implemented(tr2))
393 if tr1.trait_id == tr2.trait_id => 388 if tr1.trait_id == tr2.trait_id =>
394 { 389 {
395 self.unify_substs(&tr1.substitution, &tr2.substitution, depth + 1) 390 self.unify_substs(&tr1.substitution, &tr2.substitution, depth + 1)
396 } 391 }
397 ( 392 (
398 GenericPredicate::AliasEq(AliasEq { alias: alias1, ty: ty1 }), 393 WhereClause::AliasEq(AliasEq { alias: alias1, ty: ty1 }),
399 GenericPredicate::AliasEq(AliasEq { alias: alias2, ty: ty2 }), 394 WhereClause::AliasEq(AliasEq { alias: alias2, ty: ty2 }),
400 ) => { 395 ) => {
401 let (substitution1, substitution2) = match (alias1, alias2) { 396 let (substitution1, substitution2) = match (alias1, alias2) {
402 (AliasTy::Projection(projection_ty1), AliasTy::Projection(projection_ty2)) 397 (AliasTy::Projection(projection_ty1), AliasTy::Projection(projection_ty2))