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/infer/path.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'crates/hir_ty/src/infer/path.rs') diff --git a/crates/hir_ty/src/infer/path.rs b/crates/hir_ty/src/infer/path.rs index e15135fc1..58cce56ab 100644 --- a/crates/hir_ty/src/infer/path.rs +++ b/crates/hir_ty/src/infer/path.rs @@ -2,6 +2,7 @@ use std::iter; +use chalk_ir::cast::Cast; use hir_def::{ path::{Path, PathSegment}, resolver::{ResolveValueResult, Resolver, TypeNs, ValueNs}, @@ -256,10 +257,13 @@ impl<'a> InferenceContext<'a> { .push(ty.clone()) .fill(std::iter::repeat_with(|| self.table.new_type_var())) .build(); - self.obligations.push(super::Obligation::Trait(TraitRef { - trait_id: to_chalk_trait_id(trait_), - substitution: trait_substs.clone(), - })); + self.obligations.push( + TraitRef { + trait_id: to_chalk_trait_id(trait_), + substitution: trait_substs.clone(), + } + .cast(&Interner), + ); Some(trait_substs) } AssocContainerId::ModuleId(_) => None, -- cgit v1.2.3