Skip to content

Commit a6adc74

Browse files
committed
adopt longer and shorter rather than fr and outlived_fr
1 parent ab2bc9f commit a6adc74

File tree

1 file changed

+16
-14
lines changed
  • src/librustc_mir/borrow_check/nll/region_infer

1 file changed

+16
-14
lines changed

src/librustc_mir/borrow_check/nll/region_infer/mod.rs

+16-14
Original file line numberDiff line numberDiff line change
@@ -322,37 +322,39 @@ impl<'tcx> RegionInferenceContext<'tcx> {
322322
fn check_free_region(
323323
&self,
324324
infcx: &InferCtxt<'_, '_, 'tcx>,
325-
fr: RegionVid,
326-
fr_definition: &RegionDefinition<'tcx>,
325+
longer_fr: RegionVid,
326+
longer_definition: &RegionDefinition<'tcx>,
327327
) {
328328
let inferred_values = self.inferred_values.as_ref().unwrap();
329-
let fr_name = fr_definition.name.unwrap();
330-
let fr_value = inferred_values.iter(fr.index());
329+
let longer_name = longer_definition.name.unwrap();
330+
let longer_value = inferred_values.iter(longer_fr.index());
331+
332+
// Find every region `shorter` such that `longer: shorter`
333+
// (because `longer` includes `end(shorter)`).
334+
for shorter_fr in longer_value.take_while(|&i| i < self.num_universal_regions) {
335+
let shorter_fr = RegionVid::new(shorter_fr);
331336

332-
// Find every region `o` such that `fr: o`
333-
// (because `fr` includes `end(o)`).
334-
for outlived_fr in fr_value.take_while(|&i| i < self.num_universal_regions) {
335337
// `fr` includes `end(fr)`, that's not especially
336338
// interesting.
337-
if fr.index() == outlived_fr {
339+
if longer_fr == shorter_fr {
338340
continue;
339341
}
340342

341-
let outlived_fr_definition = &self.definitions[RegionVid::new(outlived_fr)];
342-
let outlived_fr_name = outlived_fr_definition.name.unwrap();
343+
let shorter_definition = &self.definitions[shorter_fr];
344+
let shorter_name = shorter_definition.name.unwrap();
343345

344346
// Check that `o <= fr`. If not, report an error.
345347
if !self.free_region_map
346-
.sub_free_regions(outlived_fr_name, fr_name)
348+
.sub_free_regions(shorter_name, longer_name)
347349
{
348350
// FIXME: worst error msg ever
349-
let blame_span = self.blame_span(fr, RegionVid::new(outlived_fr));
351+
let blame_span = self.blame_span(longer_fr, shorter_fr);
350352
infcx.tcx.sess.span_err(
351353
blame_span,
352354
&format!(
353355
"free region `{}` does not outlive `{}`",
354-
fr_name,
355-
outlived_fr_name
356+
longer_name,
357+
shorter_name
356358
),
357359
);
358360
}

0 commit comments

Comments
 (0)