Skip to content

Commit c95ff1d

Browse files
committed
Assert index sanity.
1 parent a424090 commit c95ff1d

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

compiler/rustc_resolve/src/late/lifetimes.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1486,6 +1486,10 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> {
14861486

14871487
let map = &self.map;
14881488
let generics = self.tcx.generics_of(def_id);
1489+
1490+
// `type_def_id` points to an item, so there is nothing to inherit generics from.
1491+
debug_assert_eq!(generics.parent_count, 0);
1492+
14891493
let set_to_region = |set: ObjectLifetimeDefault| match set {
14901494
ObjectLifetimeDefault::Empty => {
14911495
if in_body {
@@ -1496,8 +1500,9 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> {
14961500
}
14971501
ObjectLifetimeDefault::Static => Some(Region::Static),
14981502
ObjectLifetimeDefault::Param(param_def_id) => {
1499-
let index = generics.param_def_id_to_index[&param_def_id];
1500-
generic_args.args.get(index as usize).and_then(|arg| match arg {
1503+
// This index can be used with `generic_args` since `parent_count == 0`.
1504+
let index = generics.param_def_id_to_index[&param_def_id] as usize;
1505+
generic_args.args.get(index).and_then(|arg| match arg {
15011506
GenericArg::Lifetime(lt) => map.defs.get(&lt.hir_id).copied(),
15021507
_ => None,
15031508
})

0 commit comments

Comments
 (0)