From 7ec3b66f7a3ac0a33cf435bc3596fdac542fc52a Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sat, 20 Mar 2021 11:23:59 +0100 Subject: Turn Obligation into something similar to chalk_ir::DomainGoal This includes starting to make use of Chalk's `Cast` trait. --- crates/hir_ty/src/traits/chalk/mapping.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'crates/hir_ty/src/traits') diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs index 7841c216c..65feb82e5 100644 --- a/crates/hir_ty/src/traits/chalk/mapping.rs +++ b/crates/hir_ty/src/traits/chalk/mapping.rs @@ -13,7 +13,7 @@ use crate::{ db::HirDatabase, from_assoc_type_id, primitive::UintTy, - traits::{Canonical, Obligation}, + traits::{Canonical, DomainGoal}, AliasTy, CallableDefId, FnPointer, InEnvironment, OpaqueTy, ProjectionTy, Scalar, Substitution, TraitRef, Ty, WhereClause, }; @@ -422,13 +422,15 @@ impl ToChalk for AliasEq { } } -impl ToChalk for Obligation { +impl ToChalk for DomainGoal { type Chalk = chalk_ir::DomainGoal; fn to_chalk(self, db: &dyn HirDatabase) -> chalk_ir::DomainGoal { match self { - Obligation::Trait(tr) => tr.to_chalk(db).cast(&Interner), - Obligation::AliasEq(alias_eq) => alias_eq.to_chalk(db).cast(&Interner), + DomainGoal::Holds(WhereClause::Implemented(tr)) => tr.to_chalk(db).cast(&Interner), + DomainGoal::Holds(WhereClause::AliasEq(alias_eq)) => { + alias_eq.to_chalk(db).cast(&Interner) + } } } -- cgit v1.2.3