Skip to content

Commit ec17be2

Browse files
committed
Add outlives_constraint to BlameConstraint
1 parent 6765329 commit ec17be2

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

compiler/rustc_borrowck/src/diagnostics/explain_borrow.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -310,11 +310,12 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
310310
borrow_region: RegionVid,
311311
outlived_region: RegionVid,
312312
) -> (ConstraintCategory<'tcx>, bool, Span, Option<RegionName>) {
313-
let BlameConstraint { category, from_closure, cause, variance_info: _ } = self
314-
.regioncx
315-
.best_blame_constraint(borrow_region, NllRegionVariableOrigin::FreeRegion, |r| {
316-
self.regioncx.provides_universal_region(r, borrow_region, outlived_region)
317-
});
313+
let blame_constraint = self.regioncx.best_blame_constraint(
314+
borrow_region,
315+
NllRegionVariableOrigin::FreeRegion,
316+
|r| self.regioncx.provides_universal_region(r, borrow_region, outlived_region),
317+
);
318+
let BlameConstraint { category, from_closure, cause, .. } = blame_constraint;
318319

319320
let outlived_fr_name = self.give_region_a_name(outlived_region);
320321

compiler/rustc_borrowck/src/diagnostics/region_errors.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> {
354354
) {
355355
debug!("report_region_error(fr={:?}, outlived_fr={:?})", fr, outlived_fr);
356356

357-
let BlameConstraint { category, cause, variance_info, from_closure: _ } =
357+
let BlameConstraint { category, cause, variance_info, .. } =
358358
self.regioncx.best_blame_constraint(fr, fr_origin, |r| {
359359
self.regioncx.provides_universal_region(r, fr, outlived_fr)
360360
});

compiler/rustc_borrowck/src/region_infer/mod.rs

+2
Original file line numberDiff line numberDiff line change
@@ -2073,6 +2073,7 @@ impl<'tcx> RegionInferenceContext<'tcx> {
20732073
from_closure,
20742074
cause: ObligationCause::new(span, CRATE_HIR_ID, cause_code),
20752075
variance_info: constraint.variance_info,
2076+
outlives_constraint: *constraint,
20762077
}
20772078
})
20782079
.collect();
@@ -2328,4 +2329,5 @@ pub struct BlameConstraint<'tcx> {
23282329
pub from_closure: bool,
23292330
pub cause: ObligationCause<'tcx>,
23302331
pub variance_info: ty::VarianceDiagInfo<'tcx>,
2332+
pub outlives_constraint: OutlivesConstraint<'tcx>,
23312333
}

0 commit comments

Comments
 (0)