Skip to content

Commit 28fb03a

Browse files
committed
coverage: Add #[track_caller] to the span generator's unwrap methods
This should make it easier to investigate unwrap failures in bug reports.
1 parent fbd9e9e commit 28fb03a

File tree

1 file changed

+12
-14
lines changed
  • compiler/rustc_mir_transform/src/coverage

1 file changed

+12
-14
lines changed

compiler/rustc_mir_transform/src/coverage/spans.rs

+12-14
Original file line numberDiff line numberDiff line change
@@ -387,38 +387,36 @@ impl<'a> CoverageSpansGenerator<'a> {
387387
self.push_refined_span(macro_name_cov);
388388
}
389389

390+
#[track_caller]
390391
fn curr(&self) -> &CoverageSpan {
391-
self.some_curr
392-
.as_ref()
393-
.unwrap_or_else(|| bug!("invalid attempt to unwrap a None some_curr"))
392+
self.some_curr.as_ref().unwrap_or_else(|| bug!("some_curr is None (curr)"))
394393
}
395394

395+
#[track_caller]
396396
fn curr_mut(&mut self) -> &mut CoverageSpan {
397-
self.some_curr
398-
.as_mut()
399-
.unwrap_or_else(|| bug!("invalid attempt to unwrap a None some_curr"))
397+
self.some_curr.as_mut().unwrap_or_else(|| bug!("some_curr is None (curr_mut)"))
400398
}
401399

402400
/// If called, then the next call to `next_coverage_span()` will *not* update `prev` with the
403401
/// `curr` coverage span.
402+
#[track_caller]
404403
fn take_curr(&mut self) -> CoverageSpan {
405-
self.some_curr.take().unwrap_or_else(|| bug!("invalid attempt to unwrap a None some_curr"))
404+
self.some_curr.take().unwrap_or_else(|| bug!("some_curr is None (take_curr)"))
406405
}
407406

407+
#[track_caller]
408408
fn prev(&self) -> &CoverageSpan {
409-
self.some_prev
410-
.as_ref()
411-
.unwrap_or_else(|| bug!("invalid attempt to unwrap a None some_prev"))
409+
self.some_prev.as_ref().unwrap_or_else(|| bug!("some_prev is None (prev)"))
412410
}
413411

412+
#[track_caller]
414413
fn prev_mut(&mut self) -> &mut CoverageSpan {
415-
self.some_prev
416-
.as_mut()
417-
.unwrap_or_else(|| bug!("invalid attempt to unwrap a None some_prev"))
414+
self.some_prev.as_mut().unwrap_or_else(|| bug!("some_prev is None (prev_mut)"))
418415
}
419416

417+
#[track_caller]
420418
fn take_prev(&mut self) -> CoverageSpan {
421-
self.some_prev.take().unwrap_or_else(|| bug!("invalid attempt to unwrap a None some_prev"))
419+
self.some_prev.take().unwrap_or_else(|| bug!("some_prev is None (take_prev)"))
422420
}
423421

424422
/// If there are `pending_dups` but `prev` is not a matching dup (`prev.span` doesn't match the

0 commit comments

Comments
 (0)