Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit c276334

Browse files
committed
add RegionName::span
1 parent 8ad7bc3 commit c276334

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

src/librustc_mir/borrow_check/diagnostics/region_errors.rs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use crate::borrow_check::{
1919
MirBorrowckCtxt,
2020
};
2121

22-
use super::{OutlivesSuggestionBuilder, RegionName, RegionNameSource};
22+
use super::{OutlivesSuggestionBuilder, RegionName};
2323

2424
impl ConstraintDescription for ConstraintCategory {
2525
fn description(&self) -> &'static str {
@@ -396,18 +396,8 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> {
396396
diag.span_label(upvar_span, "variable captured here");
397397
}
398398

399-
match self.give_region_a_name(*outlived_fr).unwrap().source {
400-
RegionNameSource::NamedEarlyBoundRegion(fr_span)
401-
| RegionNameSource::NamedFreeRegion(fr_span)
402-
| RegionNameSource::SynthesizedFreeEnvRegion(fr_span, _)
403-
| RegionNameSource::CannotMatchHirTy(fr_span, _)
404-
| RegionNameSource::MatchedHirTy(fr_span)
405-
| RegionNameSource::MatchedAdtAndSegment(fr_span)
406-
| RegionNameSource::AnonRegionFromUpvar(fr_span, _)
407-
| RegionNameSource::AnonRegionFromOutput(fr_span, _, _) => {
408-
diag.span_label(fr_span, "inferred to be a `FnMut` closure");
409-
}
410-
_ => {}
399+
if let Some(fr_span) = self.give_region_a_name(*outlived_fr).unwrap().span() {
400+
diag.span_label(fr_span, "inferred to be a `FnMut` closure");
411401
}
412402

413403
diag.note(

src/librustc_mir/borrow_check/diagnostics/region_name.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,22 @@ impl RegionName {
6868
}
6969
}
7070

71+
crate fn span(&self) -> Option<Span> {
72+
match self.source {
73+
RegionNameSource::Static => None,
74+
RegionNameSource::NamedEarlyBoundRegion(span)
75+
| RegionNameSource::NamedFreeRegion(span)
76+
| RegionNameSource::SynthesizedFreeEnvRegion(span, _)
77+
| RegionNameSource::CannotMatchHirTy(span, _)
78+
| RegionNameSource::MatchedHirTy(span)
79+
| RegionNameSource::MatchedAdtAndSegment(span)
80+
| RegionNameSource::AnonRegionFromUpvar(span, _)
81+
| RegionNameSource::AnonRegionFromOutput(span, _, _)
82+
| RegionNameSource::AnonRegionFromYieldTy(span, _)
83+
| RegionNameSource::AnonRegionFromAsyncFn(span) => Some(span),
84+
}
85+
}
86+
7187
crate fn highlight_region_name(&self, diag: &mut DiagnosticBuilder<'_>) {
7288
match &self.source {
7389
RegionNameSource::NamedFreeRegion(span)

0 commit comments

Comments
 (0)