diff options
| author | Zalathar <Zalathar@users.noreply.github.com> | 2024-06-03 15:27:30 +1000 |
|---|---|---|
| committer | Zalathar <Zalathar@users.noreply.github.com> | 2024-06-04 13:11:45 +1000 |
| commit | 9c931c01f70d12d7296fead28b1c3dc417bb9372 (patch) | |
| tree | 57770e94ce15408435f6b258e972d4cbb31172af /compiler/rustc_mir_transform/src/coverage/spans.rs | |
| parent | df96cba432d9e869765385d6474b505494533435 (diff) | |
| download | rust-9c931c01f70d12d7296fead28b1c3dc417bb9372.tar.gz rust-9c931c01f70d12d7296fead28b1c3dc417bb9372.zip | |
coverage: Return a nested vector from initial span extraction
This will allow the span extractor to produce multiple separate buckets, instead of just one flat list of spans.
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage/spans.rs')
| -rw-r--r-- | compiler/rustc_mir_transform/src/coverage/spans.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/compiler/rustc_mir_transform/src/coverage/spans.rs b/compiler/rustc_mir_transform/src/coverage/spans.rs index f2f76ac70c2..b0bd514f690 100644 --- a/compiler/rustc_mir_transform/src/coverage/spans.rs +++ b/compiler/rustc_mir_transform/src/coverage/spans.rs @@ -20,13 +20,16 @@ pub(super) fn extract_refined_covspans( basic_coverage_blocks: &CoverageGraph, code_mappings: &mut impl Extend<mappings::CodeMapping>, ) { - let sorted_spans = + let sorted_span_buckets = from_mir::mir_to_initial_sorted_coverage_spans(mir_body, hir_info, basic_coverage_blocks); - let coverage_spans = SpansRefiner::refine_sorted_spans(sorted_spans); - code_mappings.extend(coverage_spans.into_iter().map(|RefinedCovspan { bcb, span, .. }| { - // Each span produced by the generator represents an ordinary code region. - mappings::CodeMapping { span, bcb } - })); + for bucket in sorted_span_buckets { + let refined_spans = SpansRefiner::refine_sorted_spans(bucket); + code_mappings.extend(refined_spans.into_iter().map(|covspan| { + let RefinedCovspan { span, bcb, is_hole: _ } = covspan; + // Each span produced by the refiner represents an ordinary code region. + mappings::CodeMapping { span, bcb } + })); + } } #[derive(Debug)] |
