Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/mir/lower.rs')
-rw-r--r--crates/hir-ty/src/mir/lower.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/hir-ty/src/mir/lower.rs b/crates/hir-ty/src/mir/lower.rs
index ab7e6df3f5..0ee9ed0e73 100644
--- a/crates/hir-ty/src/mir/lower.rs
+++ b/crates/hir-ty/src/mir/lower.rs
@@ -2358,8 +2358,14 @@ pub fn lower_body_to_mir<'db>(
) -> Result<'db, MirBody> {
// Extract params and self_param only when lowering the body's root expression for a function.
if let Some(fid) = owner.as_function() {
- let callable_sig =
- db.callable_item_signature(fid.into()).instantiate_identity().skip_binder();
+ let callable_sig = {
+ let resolver = owner.resolver(db);
+ let interner = DbInterner::new_with(db, resolver.krate());
+ interner.liberate_late_bound_regions(
+ fid.into(),
+ db.callable_item_signature(fid.into()).instantiate_identity().skip_norm_wip(),
+ )
+ };
let mut param_tys = callable_sig.inputs().iter().copied();
let self_param = self_param.and_then(|id| Some((id, param_tys.next()?)));