diff options
author | Florian Diebold <[email protected]> | 2020-07-11 14:22:46 +0100 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2020-07-12 18:58:34 +0100 |
commit | 209c492432c15b017f99dba06d5937389c1f9546 (patch) | |
tree | 45d30a421ff534c72ae850cd4ff108b74ef81f9d /crates/ra_hir_ty/src/traits/chalk/mapping.rs | |
parent | ab1ad19f552e1b11055ed60f87cc420871d902eb (diff) |
Upgrade Chalk
Diffstat (limited to 'crates/ra_hir_ty/src/traits/chalk/mapping.rs')
-rw-r--r-- | crates/ra_hir_ty/src/traits/chalk/mapping.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/crates/ra_hir_ty/src/traits/chalk/mapping.rs b/crates/ra_hir_ty/src/traits/chalk/mapping.rs index 433d6aa03..bc0c6de17 100644 --- a/crates/ra_hir_ty/src/traits/chalk/mapping.rs +++ b/crates/ra_hir_ty/src/traits/chalk/mapping.rs | |||
@@ -61,7 +61,7 @@ impl ToChalk for Ty { | |||
61 | Ty::Bound(idx) => chalk_ir::TyData::BoundVar(idx).intern(&Interner), | 61 | Ty::Bound(idx) => chalk_ir::TyData::BoundVar(idx).intern(&Interner), |
62 | Ty::Infer(_infer_ty) => panic!("uncanonicalized infer ty"), | 62 | Ty::Infer(_infer_ty) => panic!("uncanonicalized infer ty"), |
63 | Ty::Dyn(predicates) => { | 63 | Ty::Dyn(predicates) => { |
64 | let where_clauses = chalk_ir::QuantifiedWhereClauses::from( | 64 | let where_clauses = chalk_ir::QuantifiedWhereClauses::from_iter( |
65 | &Interner, | 65 | &Interner, |
66 | predicates.iter().filter(|p| !p.is_error()).cloned().map(|p| p.to_chalk(db)), | 66 | predicates.iter().filter(|p| !p.is_error()).cloned().map(|p| p.to_chalk(db)), |
67 | ); | 67 | ); |
@@ -152,7 +152,7 @@ fn ref_to_chalk( | |||
152 | let lifetime = LIFETIME_PLACEHOLDER.to_lifetime(&Interner); | 152 | let lifetime = LIFETIME_PLACEHOLDER.to_lifetime(&Interner); |
153 | chalk_ir::ApplicationTy { | 153 | chalk_ir::ApplicationTy { |
154 | name: TypeName::Ref(mutability.to_chalk(db)), | 154 | name: TypeName::Ref(mutability.to_chalk(db)), |
155 | substitution: chalk_ir::Substitution::from( | 155 | substitution: chalk_ir::Substitution::from_iter( |
156 | &Interner, | 156 | &Interner, |
157 | vec![lifetime.cast(&Interner), arg.cast(&Interner)], | 157 | vec![lifetime.cast(&Interner), arg.cast(&Interner)], |
158 | ), | 158 | ), |
@@ -177,7 +177,7 @@ impl ToChalk for Substs { | |||
177 | type Chalk = chalk_ir::Substitution<Interner>; | 177 | type Chalk = chalk_ir::Substitution<Interner>; |
178 | 178 | ||
179 | fn to_chalk(self, db: &dyn HirDatabase) -> chalk_ir::Substitution<Interner> { | 179 | fn to_chalk(self, db: &dyn HirDatabase) -> chalk_ir::Substitution<Interner> { |
180 | chalk_ir::Substitution::from(&Interner, self.iter().map(|ty| ty.clone().to_chalk(db))) | 180 | chalk_ir::Substitution::from_iter(&Interner, self.iter().map(|ty| ty.clone().to_chalk(db))) |
181 | } | 181 | } |
182 | 182 | ||
183 | fn from_chalk(db: &dyn HirDatabase, parameters: chalk_ir::Substitution<Interner>) -> Substs { | 183 | fn from_chalk(db: &dyn HirDatabase, parameters: chalk_ir::Substitution<Interner>) -> Substs { |
@@ -492,6 +492,11 @@ impl ToChalk for GenericPredicate { | |||
492 | // we shouldn't get these from Chalk | 492 | // we shouldn't get these from Chalk |
493 | panic!("encountered LifetimeOutlives from Chalk") | 493 | panic!("encountered LifetimeOutlives from Chalk") |
494 | } | 494 | } |
495 | |||
496 | chalk_ir::WhereClause::TypeOutlives(_) => { | ||
497 | // we shouldn't get these from Chalk | ||
498 | panic!("encountered TypeOutlives from Chalk") | ||
499 | } | ||
495 | } | 500 | } |
496 | } | 501 | } |
497 | } | 502 | } |
@@ -570,7 +575,7 @@ where | |||
570 | ) | 575 | ) |
571 | }); | 576 | }); |
572 | let value = self.value.to_chalk(db); | 577 | let value = self.value.to_chalk(db); |
573 | chalk_ir::Canonical { value, binders: chalk_ir::CanonicalVarKinds::from(&Interner, kinds) } | 578 | chalk_ir::Canonical { value, binders: chalk_ir::CanonicalVarKinds::from_iter(&Interner, kinds) } |
574 | } | 579 | } |
575 | 580 | ||
576 | fn from_chalk(db: &dyn HirDatabase, canonical: chalk_ir::Canonical<T::Chalk>) -> Canonical<T> { | 581 | fn from_chalk(db: &dyn HirDatabase, canonical: chalk_ir::Canonical<T::Chalk>) -> Canonical<T> { |
@@ -691,7 +696,7 @@ where | |||
691 | T: HasInterner<Interner = Interner>, | 696 | T: HasInterner<Interner = Interner>, |
692 | { | 697 | { |
693 | chalk_ir::Binders::new( | 698 | chalk_ir::Binders::new( |
694 | chalk_ir::VariableKinds::from( | 699 | chalk_ir::VariableKinds::from_iter( |
695 | &Interner, | 700 | &Interner, |
696 | std::iter::repeat(chalk_ir::VariableKind::Ty(chalk_ir::TyKind::General)).take(num_vars), | 701 | std::iter::repeat(chalk_ir::VariableKind::Ty(chalk_ir::TyKind::General)).take(num_vars), |
697 | ), | 702 | ), |