Skip to content

Commit d6400c0

Browse files
committed
Remove unnecessary lifetimes in dataflow structs.
There are four related dataflow structs: `MaybeInitializedPlaces`, `MaybeUninitializedPlaces`, and `EverInitializedPlaces`, `DefinitelyInitializedPlaces`. They all have a `&Body` and a `&MoveData<'tcx>` field. The first three use different lifetimes for the two fields, but the last one uses the same lifetime for both. This commit changes the first three to use the same lifetime, removing the need for one of the lifetimes. Other structs that also lose a lifetime as a result of this are `LivenessContext`, `LivenessResults`, `InitializationData`. The commit uses the name `'mir` everywhere for the lifetimes used with `&Body` and `&MoveData`, replacing some other names: `'a`, `'flow`, and `'cx`. I think this is a reasonable name because `'mir' is used for many `mir::Body` references (and things within `mir::Body`). Even when a lifetime is shared between a `&Body` and a reference to something else, the `'mir` lifetime name is so well-established that it's reasonable to reuse it, rather than something non-specific like `'a`. (Naming lifetimes is hard!)
1 parent 54fdef7 commit d6400c0

File tree

7 files changed

+53
-53
lines changed

7 files changed

+53
-53
lines changed

compiler/rustc_borrowck/src/dataflow.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ use crate::{places_conflict, BorrowSet, PlaceConflictBias, PlaceExt, RegionInfer
1717
/// The results of the dataflow analyses used by the borrow checker.
1818
pub(crate) struct BorrowckResults<'a, 'mir, 'tcx> {
1919
pub(crate) borrows: Results<'tcx, Borrows<'a, 'mir, 'tcx>>,
20-
pub(crate) uninits: Results<'tcx, MaybeUninitializedPlaces<'a, 'mir, 'tcx>>,
21-
pub(crate) ever_inits: Results<'tcx, EverInitializedPlaces<'a, 'mir, 'tcx>>,
20+
pub(crate) uninits: Results<'tcx, MaybeUninitializedPlaces<'mir, 'tcx>>,
21+
pub(crate) ever_inits: Results<'tcx, EverInitializedPlaces<'mir, 'tcx>>,
2222
}
2323

2424
/// The transient state of the dataflow analyses used by the borrow checker.
2525
#[derive(Debug)]
2626
pub(crate) struct BorrowckFlowState<'a, 'mir, 'tcx> {
2727
pub(crate) borrows: <Borrows<'a, 'mir, 'tcx> as AnalysisDomain<'tcx>>::Domain,
28-
pub(crate) uninits: <MaybeUninitializedPlaces<'a, 'mir, 'tcx> as AnalysisDomain<'tcx>>::Domain,
29-
pub(crate) ever_inits: <EverInitializedPlaces<'a, 'mir, 'tcx> as AnalysisDomain<'tcx>>::Domain,
28+
pub(crate) uninits: <MaybeUninitializedPlaces<'mir, 'tcx> as AnalysisDomain<'tcx>>::Domain,
29+
pub(crate) ever_inits: <EverInitializedPlaces<'mir, 'tcx> as AnalysisDomain<'tcx>>::Domain,
3030
}
3131

3232
impl<'a, 'mir, 'tcx> ResultsVisitable<'tcx> for BorrowckResults<'a, 'mir, 'tcx> {

compiler/rustc_borrowck/src/nll.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,14 @@ pub(crate) fn replace_regions_in_mir<'tcx>(
7575
/// Computes the (non-lexical) regions from the input MIR.
7676
///
7777
/// This may result in errors being reported.
78-
pub(crate) fn compute_regions<'cx, 'tcx>(
78+
pub(crate) fn compute_regions<'mir, 'tcx>(
7979
infcx: &BorrowckInferCtxt<'tcx>,
8080
universal_regions: UniversalRegions<'tcx>,
8181
body: &Body<'tcx>,
8282
promoted: &IndexSlice<Promoted, Body<'tcx>>,
8383
location_table: &LocationTable,
8484
param_env: ty::ParamEnv<'tcx>,
85-
flow_inits: &mut ResultsCursor<'cx, 'tcx, MaybeInitializedPlaces<'_, 'cx, 'tcx>>,
85+
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'mir, 'tcx>>,
8686
move_data: &MoveData<'tcx>,
8787
borrow_set: &BorrowSet<'tcx>,
8888
upvars: &[&ty::CapturedPlace<'tcx>],

compiler/rustc_borrowck/src/type_check/liveness/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ pub(super) fn generate<'mir, 'tcx>(
3434
typeck: &mut TypeChecker<'_, 'tcx>,
3535
body: &Body<'tcx>,
3636
elements: &Rc<DenseLocationMap>,
37-
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'_, 'mir, 'tcx>>,
37+
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'mir, 'tcx>>,
3838
move_data: &MoveData<'tcx>,
3939
) {
4040
debug!("liveness::generate");

compiler/rustc_borrowck/src/type_check/liveness/trace.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ pub(super) fn trace<'mir, 'tcx>(
4141
typeck: &mut TypeChecker<'_, 'tcx>,
4242
body: &Body<'tcx>,
4343
elements: &Rc<DenseLocationMap>,
44-
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'_, 'mir, 'tcx>>,
44+
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'mir, 'tcx>>,
4545
move_data: &MoveData<'tcx>,
4646
relevant_live_locals: Vec<Local>,
4747
boring_locals: Vec<Local>,
@@ -99,7 +99,7 @@ pub(super) fn trace<'mir, 'tcx>(
9999
}
100100

101101
/// Contextual state for the type-liveness coroutine.
102-
struct LivenessContext<'a, 'me, 'typeck, 'flow, 'tcx> {
102+
struct LivenessContext<'me, 'typeck, 'mir, 'tcx> {
103103
/// Current type-checker, giving us our inference context etc.
104104
typeck: &'me mut TypeChecker<'typeck, 'tcx>,
105105

@@ -117,7 +117,7 @@ struct LivenessContext<'a, 'me, 'typeck, 'flow, 'tcx> {
117117

118118
/// Results of dataflow tracking which variables (and paths) have been
119119
/// initialized.
120-
flow_inits: &'me mut ResultsCursor<'flow, 'tcx, MaybeInitializedPlaces<'a, 'flow, 'tcx>>,
120+
flow_inits: &'me mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'mir, 'tcx>>,
121121

122122
/// Index indicating where each variable is assigned, used, or
123123
/// dropped.
@@ -129,8 +129,8 @@ struct DropData<'tcx> {
129129
region_constraint_data: Option<&'tcx QueryRegionConstraints<'tcx>>,
130130
}
131131

132-
struct LivenessResults<'a, 'me, 'typeck, 'flow, 'tcx> {
133-
cx: LivenessContext<'a, 'me, 'typeck, 'flow, 'tcx>,
132+
struct LivenessResults<'me, 'typeck, 'mir, 'tcx> {
133+
cx: LivenessContext<'me, 'typeck, 'mir, 'tcx>,
134134

135135
/// Set of points that define the current local.
136136
defs: BitSet<PointIndex>,
@@ -151,8 +151,8 @@ struct LivenessResults<'a, 'me, 'typeck, 'flow, 'tcx> {
151151
stack: Vec<PointIndex>,
152152
}
153153

154-
impl<'a, 'me, 'typeck, 'flow, 'tcx> LivenessResults<'a, 'me, 'typeck, 'flow, 'tcx> {
155-
fn new(cx: LivenessContext<'a, 'me, 'typeck, 'flow, 'tcx>) -> Self {
154+
impl<'me, 'typeck, 'mir, 'tcx> LivenessResults<'me, 'typeck, 'mir, 'tcx> {
155+
fn new(cx: LivenessContext<'me, 'typeck, 'mir, 'tcx>) -> Self {
156156
let num_points = cx.elements.num_points();
157157
LivenessResults {
158158
cx,
@@ -505,7 +505,7 @@ impl<'a, 'me, 'typeck, 'flow, 'tcx> LivenessResults<'a, 'me, 'typeck, 'flow, 'tc
505505
}
506506
}
507507

508-
impl<'tcx> LivenessContext<'_, '_, '_, '_, 'tcx> {
508+
impl<'tcx> LivenessContext<'_, '_, '_, 'tcx> {
509509
/// Returns `true` if the local variable (or some part of it) is initialized at the current
510510
/// cursor position. Callers should call one of the `seek` methods immediately before to point
511511
/// the cursor to the desired location.

compiler/rustc_borrowck/src/type_check/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ pub(crate) fn type_check<'mir, 'tcx>(
125125
location_table: &LocationTable,
126126
borrow_set: &BorrowSet<'tcx>,
127127
all_facts: &mut Option<AllFacts>,
128-
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'_, 'mir, 'tcx>>,
128+
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'mir, 'tcx>>,
129129
move_data: &MoveData<'tcx>,
130130
elements: &Rc<DenseLocationMap>,
131131
upvars: &[&ty::CapturedPlace<'tcx>],

compiler/rustc_mir_dataflow/src/impls/initialized.rs

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ use crate::{
5151
/// Similarly, at a given `drop` statement, the set-intersection
5252
/// between this data and `MaybeUninitializedPlaces` yields the set of
5353
/// places that would require a dynamic drop-flag at that statement.
54-
pub struct MaybeInitializedPlaces<'a, 'mir, 'tcx> {
54+
pub struct MaybeInitializedPlaces<'mir, 'tcx> {
5555
tcx: TyCtxt<'tcx>,
5656
body: &'mir Body<'tcx>,
57-
move_data: &'a MoveData<'tcx>,
57+
move_data: &'mir MoveData<'tcx>,
5858
skip_unreachable_unwind: bool,
5959
}
6060

61-
impl<'a, 'mir, 'tcx> MaybeInitializedPlaces<'a, 'mir, 'tcx> {
62-
pub fn new(tcx: TyCtxt<'tcx>, body: &'mir Body<'tcx>, move_data: &'a MoveData<'tcx>) -> Self {
61+
impl<'mir, 'tcx> MaybeInitializedPlaces<'mir, 'tcx> {
62+
pub fn new(tcx: TyCtxt<'tcx>, body: &'mir Body<'tcx>, move_data: &'mir MoveData<'tcx>) -> Self {
6363
MaybeInitializedPlaces { tcx, body, move_data, skip_unreachable_unwind: false }
6464
}
6565

@@ -85,7 +85,7 @@ impl<'a, 'mir, 'tcx> MaybeInitializedPlaces<'a, 'mir, 'tcx> {
8585
}
8686
}
8787

88-
impl<'a, 'mir, 'tcx> HasMoveData<'tcx> for MaybeInitializedPlaces<'a, 'mir, 'tcx> {
88+
impl<'mir, 'tcx> HasMoveData<'tcx> for MaybeInitializedPlaces<'mir, 'tcx> {
8989
fn move_data(&self) -> &MoveData<'tcx> {
9090
self.move_data
9191
}
@@ -126,17 +126,17 @@ impl<'a, 'mir, 'tcx> HasMoveData<'tcx> for MaybeInitializedPlaces<'a, 'mir, 'tcx
126126
/// Similarly, at a given `drop` statement, the set-intersection
127127
/// between this data and `MaybeInitializedPlaces` yields the set of
128128
/// places that would require a dynamic drop-flag at that statement.
129-
pub struct MaybeUninitializedPlaces<'a, 'mir, 'tcx> {
129+
pub struct MaybeUninitializedPlaces<'mir, 'tcx> {
130130
tcx: TyCtxt<'tcx>,
131131
body: &'mir Body<'tcx>,
132-
move_data: &'a MoveData<'tcx>,
132+
move_data: &'mir MoveData<'tcx>,
133133

134134
mark_inactive_variants_as_uninit: bool,
135135
skip_unreachable_unwind: BitSet<mir::BasicBlock>,
136136
}
137137

138-
impl<'a, 'mir, 'tcx> MaybeUninitializedPlaces<'a, 'mir, 'tcx> {
139-
pub fn new(tcx: TyCtxt<'tcx>, body: &'mir Body<'tcx>, move_data: &'a MoveData<'tcx>) -> Self {
138+
impl<'mir, 'tcx> MaybeUninitializedPlaces<'mir, 'tcx> {
139+
pub fn new(tcx: TyCtxt<'tcx>, body: &'mir Body<'tcx>, move_data: &'mir MoveData<'tcx>) -> Self {
140140
MaybeUninitializedPlaces {
141141
tcx,
142142
body,
@@ -165,7 +165,7 @@ impl<'a, 'mir, 'tcx> MaybeUninitializedPlaces<'a, 'mir, 'tcx> {
165165
}
166166
}
167167

168-
impl<'a, 'tcx> HasMoveData<'tcx> for MaybeUninitializedPlaces<'a, '_, 'tcx> {
168+
impl<'tcx> HasMoveData<'tcx> for MaybeUninitializedPlaces<'_, 'tcx> {
169169
fn move_data(&self) -> &MoveData<'tcx> {
170170
self.move_data
171171
}
@@ -205,18 +205,18 @@ impl<'a, 'tcx> HasMoveData<'tcx> for MaybeUninitializedPlaces<'a, '_, 'tcx> {
205205
/// Similarly, at a given `drop` statement, the set-difference between
206206
/// this data and `MaybeInitializedPlaces` yields the set of places
207207
/// that would require a dynamic drop-flag at that statement.
208-
pub struct DefinitelyInitializedPlaces<'a, 'tcx> {
209-
body: &'a Body<'tcx>,
210-
move_data: &'a MoveData<'tcx>,
208+
pub struct DefinitelyInitializedPlaces<'mir, 'tcx> {
209+
body: &'mir Body<'tcx>,
210+
move_data: &'mir MoveData<'tcx>,
211211
}
212212

213-
impl<'a, 'tcx> DefinitelyInitializedPlaces<'a, 'tcx> {
214-
pub fn new(body: &'a Body<'tcx>, move_data: &'a MoveData<'tcx>) -> Self {
213+
impl<'mir, 'tcx> DefinitelyInitializedPlaces<'mir, 'tcx> {
214+
pub fn new(body: &'mir Body<'tcx>, move_data: &'mir MoveData<'tcx>) -> Self {
215215
DefinitelyInitializedPlaces { body, move_data }
216216
}
217217
}
218218

219-
impl<'a, 'tcx> HasMoveData<'tcx> for DefinitelyInitializedPlaces<'a, 'tcx> {
219+
impl<'mir, 'tcx> HasMoveData<'tcx> for DefinitelyInitializedPlaces<'mir, 'tcx> {
220220
fn move_data(&self) -> &MoveData<'tcx> {
221221
self.move_data
222222
}
@@ -251,24 +251,24 @@ impl<'a, 'tcx> HasMoveData<'tcx> for DefinitelyInitializedPlaces<'a, 'tcx> {
251251
/// c = S; // {a, b, c, d }
252252
/// }
253253
/// ```
254-
pub struct EverInitializedPlaces<'a, 'mir, 'tcx> {
254+
pub struct EverInitializedPlaces<'mir, 'tcx> {
255255
body: &'mir Body<'tcx>,
256-
move_data: &'a MoveData<'tcx>,
256+
move_data: &'mir MoveData<'tcx>,
257257
}
258258

259-
impl<'a, 'mir, 'tcx> EverInitializedPlaces<'a, 'mir, 'tcx> {
260-
pub fn new(body: &'mir Body<'tcx>, move_data: &'a MoveData<'tcx>) -> Self {
259+
impl<'mir, 'tcx> EverInitializedPlaces<'mir, 'tcx> {
260+
pub fn new(body: &'mir Body<'tcx>, move_data: &'mir MoveData<'tcx>) -> Self {
261261
EverInitializedPlaces { body, move_data }
262262
}
263263
}
264264

265-
impl<'a, 'tcx> HasMoveData<'tcx> for EverInitializedPlaces<'a, '_, 'tcx> {
265+
impl<'tcx> HasMoveData<'tcx> for EverInitializedPlaces<'_, 'tcx> {
266266
fn move_data(&self) -> &MoveData<'tcx> {
267267
self.move_data
268268
}
269269
}
270270

271-
impl<'a, 'mir, 'tcx> MaybeInitializedPlaces<'a, 'mir, 'tcx> {
271+
impl<'mir, 'tcx> MaybeInitializedPlaces<'mir, 'tcx> {
272272
fn update_bits(
273273
trans: &mut impl GenKill<MovePathIndex>,
274274
path: MovePathIndex,
@@ -281,7 +281,7 @@ impl<'a, 'mir, 'tcx> MaybeInitializedPlaces<'a, 'mir, 'tcx> {
281281
}
282282
}
283283

284-
impl<'a, 'tcx> MaybeUninitializedPlaces<'a, '_, 'tcx> {
284+
impl<'tcx> MaybeUninitializedPlaces<'_, 'tcx> {
285285
fn update_bits(
286286
trans: &mut impl GenKill<MovePathIndex>,
287287
path: MovePathIndex,
@@ -294,7 +294,7 @@ impl<'a, 'tcx> MaybeUninitializedPlaces<'a, '_, 'tcx> {
294294
}
295295
}
296296

297-
impl<'a, 'tcx> DefinitelyInitializedPlaces<'a, 'tcx> {
297+
impl<'mir, 'tcx> DefinitelyInitializedPlaces<'mir, 'tcx> {
298298
fn update_bits(
299299
trans: &mut impl GenKill<MovePathIndex>,
300300
path: MovePathIndex,
@@ -307,7 +307,7 @@ impl<'a, 'tcx> DefinitelyInitializedPlaces<'a, 'tcx> {
307307
}
308308
}
309309

310-
impl<'tcx> AnalysisDomain<'tcx> for MaybeInitializedPlaces<'_, '_, 'tcx> {
310+
impl<'tcx> AnalysisDomain<'tcx> for MaybeInitializedPlaces<'_, 'tcx> {
311311
/// There can be many more `MovePathIndex` than there are locals in a MIR body.
312312
/// We use a chunked bitset to avoid paying too high a memory footprint.
313313
type Domain = MaybeReachable<ChunkedBitSet<MovePathIndex>>;
@@ -329,7 +329,7 @@ impl<'tcx> AnalysisDomain<'tcx> for MaybeInitializedPlaces<'_, '_, 'tcx> {
329329
}
330330
}
331331

332-
impl<'tcx> GenKillAnalysis<'tcx> for MaybeInitializedPlaces<'_, '_, 'tcx> {
332+
impl<'tcx> GenKillAnalysis<'tcx> for MaybeInitializedPlaces<'_, 'tcx> {
333333
type Idx = MovePathIndex;
334334

335335
fn domain_size(&self, _: &Body<'tcx>) -> usize {
@@ -442,7 +442,7 @@ impl<'tcx> GenKillAnalysis<'tcx> for MaybeInitializedPlaces<'_, '_, 'tcx> {
442442
}
443443
}
444444

445-
impl<'tcx> AnalysisDomain<'tcx> for MaybeUninitializedPlaces<'_, '_, 'tcx> {
445+
impl<'tcx> AnalysisDomain<'tcx> for MaybeUninitializedPlaces<'_, 'tcx> {
446446
/// There can be many more `MovePathIndex` than there are locals in a MIR body.
447447
/// We use a chunked bitset to avoid paying too high a memory footprint.
448448
type Domain = ChunkedBitSet<MovePathIndex>;
@@ -466,7 +466,7 @@ impl<'tcx> AnalysisDomain<'tcx> for MaybeUninitializedPlaces<'_, '_, 'tcx> {
466466
}
467467
}
468468

469-
impl<'tcx> GenKillAnalysis<'tcx> for MaybeUninitializedPlaces<'_, '_, 'tcx> {
469+
impl<'tcx> GenKillAnalysis<'tcx> for MaybeUninitializedPlaces<'_, 'tcx> {
470470
type Idx = MovePathIndex;
471471

472472
fn domain_size(&self, _: &Body<'tcx>) -> usize {
@@ -571,7 +571,7 @@ impl<'tcx> GenKillAnalysis<'tcx> for MaybeUninitializedPlaces<'_, '_, 'tcx> {
571571
}
572572
}
573573

574-
impl<'a, 'tcx> AnalysisDomain<'tcx> for DefinitelyInitializedPlaces<'a, 'tcx> {
574+
impl<'mir, 'tcx> AnalysisDomain<'tcx> for DefinitelyInitializedPlaces<'mir, 'tcx> {
575575
/// Use set intersection as the join operator.
576576
type Domain = lattice::Dual<BitSet<MovePathIndex>>;
577577

@@ -643,7 +643,7 @@ impl<'tcx> GenKillAnalysis<'tcx> for DefinitelyInitializedPlaces<'_, 'tcx> {
643643
}
644644
}
645645

646-
impl<'tcx> AnalysisDomain<'tcx> for EverInitializedPlaces<'_, '_, 'tcx> {
646+
impl<'tcx> AnalysisDomain<'tcx> for EverInitializedPlaces<'_, 'tcx> {
647647
/// There can be many more `InitIndex` than there are locals in a MIR body.
648648
/// We use a chunked bitset to avoid paying too high a memory footprint.
649649
type Domain = ChunkedBitSet<InitIndex>;
@@ -662,7 +662,7 @@ impl<'tcx> AnalysisDomain<'tcx> for EverInitializedPlaces<'_, '_, 'tcx> {
662662
}
663663
}
664664

665-
impl<'tcx> GenKillAnalysis<'tcx> for EverInitializedPlaces<'_, '_, 'tcx> {
665+
impl<'tcx> GenKillAnalysis<'tcx> for EverInitializedPlaces<'_, 'tcx> {
666666
type Idx = InitIndex;
667667

668668
fn domain_size(&self, _: &Body<'tcx>) -> usize {

compiler/rustc_mir_transform/src/elaborate_drops.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ impl<'tcx> crate::MirPass<'tcx> for ElaborateDrops {
100100
#[instrument(level = "trace", skip(body, flow_inits), ret)]
101101
fn compute_dead_unwinds<'mir, 'tcx>(
102102
body: &'mir Body<'tcx>,
103-
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'_, 'mir, 'tcx>>,
103+
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'mir, 'tcx>>,
104104
) -> BitSet<BasicBlock> {
105105
// We only need to do this pass once, because unwind edges can only
106106
// reach cleanup blocks, which can't have unwind edges themselves.
@@ -121,12 +121,12 @@ fn compute_dead_unwinds<'mir, 'tcx>(
121121
dead_unwinds
122122
}
123123

124-
struct InitializationData<'a, 'mir, 'tcx> {
125-
inits: ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'a, 'mir, 'tcx>>,
126-
uninits: ResultsCursor<'mir, 'tcx, MaybeUninitializedPlaces<'a, 'mir, 'tcx>>,
124+
struct InitializationData<'mir, 'tcx> {
125+
inits: ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'mir, 'tcx>>,
126+
uninits: ResultsCursor<'mir, 'tcx, MaybeUninitializedPlaces<'mir, 'tcx>>,
127127
}
128128

129-
impl InitializationData<'_, '_, '_> {
129+
impl InitializationData<'_, '_> {
130130
fn seek_before(&mut self, loc: Location) {
131131
self.inits.seek_before_primary_effect(loc);
132132
self.uninits.seek_before_primary_effect(loc);
@@ -245,7 +245,7 @@ struct ElaborateDropsCtxt<'a, 'mir, 'tcx> {
245245
tcx: TyCtxt<'tcx>,
246246
body: &'mir Body<'tcx>,
247247
env: &'a MoveDataParamEnv<'tcx>,
248-
init_data: InitializationData<'a, 'mir, 'tcx>,
248+
init_data: InitializationData<'mir, 'tcx>,
249249
drop_flags: IndexVec<MovePathIndex, Option<Local>>,
250250
patch: MirPatch<'tcx>,
251251
}

0 commit comments

Comments
 (0)