Skip to content

Commit

Permalink
Auto merge of #95020 - compiler-errors:late-debuginfo, r=jackh726
Browse files Browse the repository at this point in the history
erase late-bound regions in dyn projection types for debuginfo

simply skipping the binder leaves late-bound regions that will cause debug assertions to fail when checking the layout of the projection ty, so let's erase the regions instead.

sorry for taking so long to put this up, had trouble getting rustc set up on a new computer.

fixes #94998
  • Loading branch information
bors committed Mar 17, 2022
2 parents 58f1179 + b69b3d0 commit 4ca56d2
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
3 changes: 2 additions & 1 deletion compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,8 @@ fn push_debuginfo_type_name<'tcx>(
let projection_bounds: SmallVec<[_; 4]> = trait_data
.projection_bounds()
.map(|bound| {
let ExistentialProjection { item_def_id, term, .. } = bound.skip_binder();
let ExistentialProjection { item_def_id, term, .. } =
tcx.erase_late_bound_regions(bound);
// FIXME(associated_const_equality): allow for consts here
(item_def_id, term.ty().unwrap())
})
Expand Down
7 changes: 7 additions & 0 deletions src/test/ui/debuginfo/late-bound-projection.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// build-pass
// compile-flags: -Cdebuginfo=2 --crate-type=rlib
// Fixes issue #94998

pub trait Trait {}

pub fn run(_: &dyn FnOnce(&()) -> Box<dyn Trait + '_>) {}

0 comments on commit 4ca56d2

Please sign in to comment.