aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/traits/chalk/mapping.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2020-07-11 14:22:46 +0100
committerFlorian Diebold <[email protected]>2020-07-12 18:58:34 +0100
commit209c492432c15b017f99dba06d5937389c1f9546 (patch)
tree45d30a421ff534c72ae850cd4ff108b74ef81f9d /crates/ra_hir_ty/src/traits/chalk/mapping.rs
parentab1ad19f552e1b11055ed60f87cc420871d902eb (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.rs15
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 ),