Skip to content

Commit b24e6f6

Browse files
committed
Impl Fold for CallableSig
1 parent 7e541e6 commit b24e6f6

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

crates/hir_ty/src/lib.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ use std::sync::Arc;
3535
use base_db::salsa;
3636
use chalk_ir::{
3737
cast::{CastTo, Caster},
38+
fold::Fold,
3839
interner::HasInterner,
3940
UintTy,
4041
};
@@ -203,6 +204,23 @@ impl CallableSig {
203204
}
204205
}
205206

207+
impl Fold<Interner> for CallableSig {
208+
type Result = CallableSig;
209+
210+
fn fold_with<'i>(
211+
self,
212+
folder: &mut dyn chalk_ir::fold::Folder<'i, Interner>,
213+
outer_binder: DebruijnIndex,
214+
) -> chalk_ir::Fallible<Self::Result>
215+
where
216+
Interner: 'i,
217+
{
218+
let vec = self.params_and_return.to_vec();
219+
let folded = vec.fold_with(folder, outer_binder)?;
220+
Ok(CallableSig { params_and_return: folded.into(), is_varargs: self.is_varargs })
221+
}
222+
}
223+
206224
#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
207225
pub enum ImplTraitId {
208226
ReturnTypeImplTrait(hir_def::FunctionId, u16),

0 commit comments

Comments
 (0)