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