From d1b645d2360fb6e74aaa774ff713af02f685a110 Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Wed, 7 Apr 2021 20:47:04 +0200 Subject: Make Canonical::new a free-standing function --- crates/hir/src/lib.rs | 2 +- crates/hir_ty/src/lib.rs | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) (limited to 'crates') diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index f5cb7a4df..7ac9118fa 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -1808,7 +1808,7 @@ impl Type { .push(self.ty.clone()) .fill(args.iter().map(|t| t.ty.clone())) .build(); - let goal = Canonical::new( + let goal = hir_ty::make_canonical( InEnvironment::new( self.env.env.clone(), AliasEq { diff --git a/crates/hir_ty/src/lib.rs b/crates/hir_ty/src/lib.rs index 7538e0874..915b1028f 100644 --- a/crates/hir_ty/src/lib.rs +++ b/crates/hir_ty/src/lib.rs @@ -107,16 +107,18 @@ pub fn make_only_type_binders(num_vars: usize, value: T) -> Binders { ) } -impl Canonical { - pub fn new(value: T, kinds: impl IntoIterator) -> Self { - let kinds = kinds.into_iter().map(|tk| { - chalk_ir::CanonicalVarKind::new( - chalk_ir::VariableKind::Ty(tk), - chalk_ir::UniverseIndex::ROOT, - ) - }); - Self { value, binders: chalk_ir::CanonicalVarKinds::from_iter(&Interner, kinds) } - } +// FIXME: get rid of this +pub fn make_canonical( + value: T, + kinds: impl IntoIterator, +) -> Canonical { + let kinds = kinds.into_iter().map(|tk| { + chalk_ir::CanonicalVarKind::new( + chalk_ir::VariableKind::Ty(tk), + chalk_ir::UniverseIndex::ROOT, + ) + }); + Canonical { value, binders: chalk_ir::CanonicalVarKinds::from_iter(&Interner, kinds) } } /// A function signature as seen by type inference: Several parameter types and -- cgit v1.2.3