Skip to content

Commit 37dd5d5

Browse files
committed
coverage: Call prev/curr less in other places
This reduces clutter, and makes it easier to notice regions where mutations definitely don't occur.
1 parent 25c92de commit 37dd5d5

File tree

1 file changed

+17
-11
lines changed
  • compiler/rustc_mir_transform/src/coverage

1 file changed

+17
-11
lines changed

compiler/rustc_mir_transform/src/coverage/spans.rs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -393,19 +393,21 @@ impl<'a> CoverageSpansGenerator<'a> {
393393
}
394394

395395
fn check_invoked_macro_name_span(&mut self) {
396-
let Some(visible_macro) = self.curr().visible_macro(self.body_span) else { return };
396+
let curr = self.curr();
397+
398+
let Some(visible_macro) = curr.visible_macro(self.body_span) else { return };
397399
if self
398400
.some_prev
399401
.as_ref()
400-
.is_some_and(|prev| prev.expn_span.ctxt() == self.curr().expn_span.ctxt())
402+
.is_some_and(|prev| prev.expn_span.ctxt() == curr.expn_span.ctxt())
401403
{
402404
return;
403405
}
404406

405-
let merged_prefix_len = self.curr_original_span.lo() - self.curr().span.lo();
407+
let merged_prefix_len = self.curr_original_span.lo() - curr.span.lo();
406408
let after_macro_bang = merged_prefix_len + BytePos(visible_macro.as_str().len() as u32 + 1);
407-
let mut macro_name_cov = self.curr().clone();
408-
self.curr_mut().span = self.curr().span.with_lo(self.curr().span.lo() + after_macro_bang);
409+
let mut macro_name_cov = curr.clone();
410+
self.curr_mut().span = curr.span.with_lo(curr.span.lo() + after_macro_bang);
409411
macro_name_cov.span =
410412
macro_name_cov.span.with_hi(macro_name_cov.span.lo() + after_macro_bang);
411413
debug!(
@@ -516,11 +518,14 @@ impl<'a> CoverageSpansGenerator<'a> {
516518
/// extends to the right of the closure, update `prev` to that portion of the span. For any
517519
/// `pending_dups`, repeat the same process.
518520
fn carve_out_span_for_closure(&mut self) {
519-
let curr_span = self.curr().span;
520-
let left_cutoff = curr_span.lo();
521-
let right_cutoff = curr_span.hi();
522-
let has_pre_closure_span = self.prev().span.lo() < right_cutoff;
523-
let has_post_closure_span = self.prev().span.hi() > right_cutoff;
521+
let prev = self.prev();
522+
let curr = self.curr();
523+
524+
let left_cutoff = curr.span.lo();
525+
let right_cutoff = curr.span.hi();
526+
let has_pre_closure_span = prev.span.lo() < right_cutoff;
527+
let has_post_closure_span = prev.span.hi() > right_cutoff;
528+
524529
let mut pending_dups = self.pending_dups.split_off(0);
525530
if has_pre_closure_span {
526531
let mut pre_closure = self.prev().clone();
@@ -575,7 +580,8 @@ impl<'a> CoverageSpansGenerator<'a> {
575580
let initial_pending_count = self.pending_dups.len();
576581
if initial_pending_count > 0 {
577582
let mut pending_dups = self.pending_dups.split_off(0);
578-
pending_dups.retain(|dup| !self.span_bcb_dominates(dup, self.curr()));
583+
let curr = self.curr();
584+
pending_dups.retain(|dup| !self.span_bcb_dominates(dup, curr));
579585
self.pending_dups.append(&mut pending_dups);
580586
if self.pending_dups.len() < initial_pending_count {
581587
debug!(

0 commit comments

Comments
 (0)