coverage: Simplify push_refined_span

It turns out that all of the `len` manipulation here was just reimplementing
`last_mut`.
This commit is contained in:
Zalathar 2023-10-14 21:52:36 +11:00
parent fa2e26285c
commit 5f1e8f9950

View File

@ -384,20 +384,16 @@ fn to_refined_spans(mut self) -> Vec<CoverageSpan> {
} }
fn push_refined_span(&mut self, covspan: CoverageSpan) { fn push_refined_span(&mut self, covspan: CoverageSpan) {
let len = self.refined_spans.len(); if let Some(last) = self.refined_spans.last_mut()
if len > 0 { && last.is_mergeable(&covspan)
let last = &mut self.refined_spans[len - 1]; {
if last.is_mergeable(&covspan) { // Instead of pushing the new span, merge it with the last refined span.
debug!( debug!(?last, ?covspan, "merging new refined span with last refined span");
"merging new refined span with last refined span, last={:?}, covspan={:?}",
last, covspan
);
last.merge_from(covspan); last.merge_from(covspan);
return; } else {
self.refined_spans.push(covspan);
} }
} }
self.refined_spans.push(covspan)
}
/// If `curr` is part of a new macro expansion, carve out and push a separate /// If `curr` is part of a new macro expansion, carve out and push a separate
/// span that ends just after the macro name and its subsequent `!`. /// span that ends just after the macro name and its subsequent `!`.