@@ -490,11 +490,13 @@ impl<'a> CoverageSpansGenerator<'a> {
490
490
}
491
491
while let Some ( curr) = self . sorted_spans_iter . next ( ) {
492
492
debug ! ( "FOR curr={:?}" , curr) ;
493
- if self . some_prev . is_some ( ) && self . prev_starts_after_next ( & curr) {
493
+ if let Some ( prev) = & self . some_prev && prev. span . lo ( ) > curr. span . lo ( ) {
494
+ // Skip curr because prev has already advanced beyond the end of curr.
495
+ // This can only happen if a prior iteration updated `prev` to skip past
496
+ // a region of code, such as skipping past a closure.
494
497
debug ! (
495
498
" prev.span starts after curr.span, so curr will be dropped (skipping past \
496
- closure?); prev={:?}",
497
- self . prev( )
499
+ closure?); prev={prev:?}",
498
500
) ;
499
501
} else {
500
502
// Save a copy of the original span for `curr` in case the `CoverageSpan` is changed
@@ -508,13 +510,6 @@ impl<'a> CoverageSpansGenerator<'a> {
508
510
false
509
511
}
510
512
511
- /// Returns true if the curr span should be skipped because prev has already advanced beyond the
512
- /// end of curr. This can only happen if a prior iteration updated `prev` to skip past a region
513
- /// of code, such as skipping past a closure.
514
- fn prev_starts_after_next ( & self , next_curr : & CoverageSpan ) -> bool {
515
- self . prev ( ) . span . lo ( ) > next_curr. span . lo ( )
516
- }
517
-
518
513
/// If `prev`s span extends left of the closure (`curr`), carve out the closure's span from
519
514
/// `prev`'s span. (The closure's coverage counters will be injected when processing the
520
515
/// closure's own MIR.) Add the portion of the span to the left of the closure; and if the span
0 commit comments