diff options
| author | Zalathar <Zalathar@users.noreply.github.com> | 2023-10-14 21:52:36 +1100 |
|---|---|---|
| committer | Zalathar <Zalathar@users.noreply.github.com> | 2023-10-16 20:54:36 +1100 |
| commit | 5f1e8f99505b9be3cb8a474dee64c1770070de18 (patch) | |
| tree | 90e3b5082487410c8243326a81b06af7d5e322c9 /compiler/rustc_mir_transform/src/coverage | |
| parent | fa2e26285c9b44ff709ad1cfc291eb9d7a0c199d (diff) | |
| download | rust-5f1e8f99505b9be3cb8a474dee64c1770070de18.tar.gz rust-5f1e8f99505b9be3cb8a474dee64c1770070de18.zip | |
coverage: Simplify `push_refined_span`
It turns out that all of the `len` manipulation here was just reimplementing `last_mut`.
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage')
| -rw-r--r-- | compiler/rustc_mir_transform/src/coverage/spans.rs | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/compiler/rustc_mir_transform/src/coverage/spans.rs b/compiler/rustc_mir_transform/src/coverage/spans.rs index 4af0a96de3b..3d2fe2913f4 100644 --- a/compiler/rustc_mir_transform/src/coverage/spans.rs +++ b/compiler/rustc_mir_transform/src/coverage/spans.rs @@ -384,19 +384,15 @@ impl<'a> CoverageSpansGenerator<'a> { } fn push_refined_span(&mut self, covspan: CoverageSpan) { - let len = self.refined_spans.len(); - if len > 0 { - let last = &mut self.refined_spans[len - 1]; - if last.is_mergeable(&covspan) { - debug!( - "merging new refined span with last refined span, last={:?}, covspan={:?}", - last, covspan - ); - last.merge_from(covspan); - return; - } + if let Some(last) = self.refined_spans.last_mut() + && last.is_mergeable(&covspan) + { + // Instead of pushing the new span, merge it with the last refined span. + debug!(?last, ?covspan, "merging new refined span with last refined span"); + last.merge_from(covspan); + } 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 |
