coverage: Don't track curr_original_span
explicitly
Now that we never mutate `curr.span`, we don't need to store its original span separately.
This commit is contained in:
parent
412c86cf03
commit
5a569b1b80
@ -155,16 +155,11 @@ struct SpansRefiner<'a> {
|
|||||||
/// iteration.
|
/// iteration.
|
||||||
some_curr: Option<CoverageSpan>,
|
some_curr: Option<CoverageSpan>,
|
||||||
|
|
||||||
/// The original `span` for `curr`, in case `curr.span()` is modified. The `curr_original_span`
|
|
||||||
/// **must not be mutated** (except when advancing to the next `curr`), even if `curr.span()`
|
|
||||||
/// is mutated.
|
|
||||||
curr_original_span: Span,
|
|
||||||
|
|
||||||
/// The CoverageSpan from a prior iteration; typically assigned from that iteration's `curr`.
|
/// The CoverageSpan from a prior iteration; typically assigned from that iteration's `curr`.
|
||||||
/// If that `curr` was discarded, `prev` retains its value from the previous iteration.
|
/// If that `curr` was discarded, `prev` retains its value from the previous iteration.
|
||||||
some_prev: Option<CoverageSpan>,
|
some_prev: Option<CoverageSpan>,
|
||||||
|
|
||||||
/// Assigned from `curr_original_span` from the previous iteration. The `prev_original_span`
|
/// Assigned from `curr.span` from the previous iteration. The `prev_original_span`
|
||||||
/// **must not be mutated** (except when advancing to the next `prev`), even if `prev.span()`
|
/// **must not be mutated** (except when advancing to the next `prev`), even if `prev.span()`
|
||||||
/// is mutated.
|
/// is mutated.
|
||||||
prev_original_span: Span,
|
prev_original_span: Span,
|
||||||
@ -196,7 +191,6 @@ impl<'a> SpansRefiner<'a> {
|
|||||||
basic_coverage_blocks,
|
basic_coverage_blocks,
|
||||||
sorted_spans_iter: sorted_spans.into_iter(),
|
sorted_spans_iter: sorted_spans.into_iter(),
|
||||||
some_curr: None,
|
some_curr: None,
|
||||||
curr_original_span: DUMMY_SP,
|
|
||||||
some_prev: None,
|
some_prev: None,
|
||||||
prev_original_span: DUMMY_SP,
|
prev_original_span: DUMMY_SP,
|
||||||
pending_dups: Vec::new(),
|
pending_dups: Vec::new(),
|
||||||
@ -340,8 +334,8 @@ impl<'a> SpansRefiner<'a> {
|
|||||||
/// Advance `prev` to `curr` (if any), and `curr` to the next `CoverageSpan` in sorted order.
|
/// Advance `prev` to `curr` (if any), and `curr` to the next `CoverageSpan` in sorted order.
|
||||||
fn next_coverage_span(&mut self) -> bool {
|
fn next_coverage_span(&mut self) -> bool {
|
||||||
if let Some(curr) = self.some_curr.take() {
|
if let Some(curr) = self.some_curr.take() {
|
||||||
|
self.prev_original_span = curr.span;
|
||||||
self.some_prev = Some(curr);
|
self.some_prev = Some(curr);
|
||||||
self.prev_original_span = self.curr_original_span;
|
|
||||||
}
|
}
|
||||||
while let Some(curr) = self.sorted_spans_iter.next() {
|
while let Some(curr) = self.sorted_spans_iter.next() {
|
||||||
debug!("FOR curr={:?}", curr);
|
debug!("FOR curr={:?}", curr);
|
||||||
@ -356,9 +350,6 @@ impl<'a> SpansRefiner<'a> {
|
|||||||
closure?); prev={prev:?}",
|
closure?); prev={prev:?}",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// Save a copy of the original span for `curr` in case the `CoverageSpan` is changed
|
|
||||||
// by `self.curr_mut().merge_from(prev)`.
|
|
||||||
self.curr_original_span = curr.span;
|
|
||||||
self.some_curr.replace(curr);
|
self.some_curr.replace(curr);
|
||||||
self.maybe_flush_pending_dups();
|
self.maybe_flush_pending_dups();
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user