Skip to content

Commit 77333a5

Browse files
committed
More TyBuilder use
1 parent 66fec39 commit 77333a5

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

crates/hir_ty/src/infer/coerce.rs

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use chalk_ir::{cast::Cast, Mutability, TyVariableKind};
88
use hir_def::lang_item::LangItemTarget;
99

1010
use crate::{
11-
autoderef, to_chalk_trait_id, traits::Solution, Interner, Substitution, TraitRef, Ty,
11+
autoderef, traits::Solution, Interner, Ty,
1212
TyBuilder, TyKind,
1313
};
1414

@@ -131,18 +131,15 @@ impl<'a> InferenceContext<'a> {
131131
_ => return None,
132132
};
133133

134-
let generic_params = crate::utils::generics(self.db.upcast(), coerce_unsized_trait.into());
135-
if generic_params.len() != 2 {
136-
// The CoerceUnsized trait should have two generic params: Self and T.
137-
return None;
138-
}
134+
let trait_ref = {
135+
let b = TyBuilder::trait_ref(self.db, coerce_unsized_trait);
136+
if b.remaining() != 2 {
137+
// The CoerceUnsized trait should have two generic params: Self and T.
138+
return None;
139+
}
140+
b.push(from_ty.clone()).push(to_ty.clone()).build()
141+
};
139142

140-
let substs = Substitution::build_for_generics(&generic_params)
141-
.push(from_ty.clone())
142-
.push(to_ty.clone())
143-
.build();
144-
let trait_ref =
145-
TraitRef { trait_id: to_chalk_trait_id(coerce_unsized_trait), substitution: substs };
146143
let goal = InEnvironment::new(self.trait_env.env.clone(), trait_ref.cast(&Interner));
147144

148145
let canonicalizer = self.canonicalizer();

0 commit comments

Comments
 (0)