aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/traits
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_ty/src/traits')
-rw-r--r--crates/ra_hir_ty/src/traits/chalk/mapping.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/ra_hir_ty/src/traits/chalk/mapping.rs b/crates/ra_hir_ty/src/traits/chalk/mapping.rs
index 7dc9ee759..06453ef82 100644
--- a/crates/ra_hir_ty/src/traits/chalk/mapping.rs
+++ b/crates/ra_hir_ty/src/traits/chalk/mapping.rs
@@ -117,8 +117,12 @@ impl ToChalk for Ty {
117 let parameters = from_chalk(db, opaque_ty.substitution); 117 let parameters = from_chalk(db, opaque_ty.substitution);
118 Ty::Opaque(OpaqueTy { opaque_ty_id: impl_trait_id, parameters }) 118 Ty::Opaque(OpaqueTy { opaque_ty_id: impl_trait_id, parameters })
119 } 119 }
120 chalk_ir::TyData::Function(chalk_ir::Fn { num_binders: _, substitution }) => { 120 chalk_ir::TyData::Function(chalk_ir::Fn { num_binders, substitution }) => {
121 let parameters: Substs = from_chalk(db, substitution); 121 assert_eq!(num_binders, 0);
122 let parameters: Substs = from_chalk(
123 db,
124 substitution.shifted_out(&Interner).expect("fn ptr should have no binders"),
125 );
122 Ty::Apply(ApplicationTy { 126 Ty::Apply(ApplicationTy {
123 ctor: TypeCtor::FnPtr { num_args: (parameters.len() - 1) as u16 }, 127 ctor: TypeCtor::FnPtr { num_args: (parameters.len() - 1) as u16 },
124 parameters, 128 parameters,