Add an optional Span to BrAnon and use it to print better error for HRTB error from generator interior
This commit is contained in:
parent
1e1e5b8d98
commit
00e314d5ed
23 changed files with 251 additions and 63 deletions
|
@ -158,6 +158,7 @@ trait TypeOpInfo<'tcx> {
|
|||
error_region: Option<ty::Region<'tcx>>,
|
||||
) -> Option<DiagnosticBuilder<'tcx, ErrorGuaranteed>>;
|
||||
|
||||
#[instrument(level = "debug", skip(self, mbcx))]
|
||||
fn report_error(
|
||||
&self,
|
||||
mbcx: &mut MirBorrowckCtxt<'_, 'tcx>,
|
||||
|
@ -167,6 +168,7 @@ trait TypeOpInfo<'tcx> {
|
|||
) {
|
||||
let tcx = mbcx.infcx.tcx;
|
||||
let base_universe = self.base_universe();
|
||||
debug!(?base_universe);
|
||||
|
||||
let Some(adjusted_universe) =
|
||||
placeholder.universe.as_u32().checked_sub(base_universe.as_u32())
|
||||
|
@ -389,6 +391,7 @@ fn try_extract_error_from_fulfill_cx<'tcx>(
|
|||
)
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", skip(infcx, region_var_origin, universe_of_region))]
|
||||
fn try_extract_error_from_region_constraints<'tcx>(
|
||||
infcx: &InferCtxt<'tcx>,
|
||||
placeholder_region: ty::Region<'tcx>,
|
||||
|
|
|
@ -355,7 +355,7 @@ impl<'tcx> MirBorrowckCtxt<'_, 'tcx> {
|
|||
})
|
||||
}
|
||||
|
||||
ty::BoundRegionKind::BrAnon(_) => None,
|
||||
ty::BoundRegionKind::BrAnon(..) => None,
|
||||
},
|
||||
|
||||
ty::ReLateBound(..) | ty::ReVar(..) | ty::RePlaceholder(..) | ty::ReErased => None,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue