about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src/coverage
diff options
context:
space:
mode:
authorZalathar <Zalathar@users.noreply.github.com>2023-10-14 21:52:36 +1100
committerZalathar <Zalathar@users.noreply.github.com>2023-10-16 20:54:36 +1100
commit5f1e8f99505b9be3cb8a474dee64c1770070de18 (patch)
tree90e3b5082487410c8243326a81b06af7d5e322c9 /compiler/rustc_mir_transform/src/coverage
parentfa2e26285c9b44ff709ad1cfc291eb9d7a0c199d (diff)
downloadrust-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.rs20
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