diff options
| author | bors <bors@rust-lang.org> | 2023-12-30 13:39:44 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-12-30 13:39:44 +0000 |
| commit | e45a937a117cdbe9cd69ed47e03f7ad28cc6ef29 (patch) | |
| tree | 554b4bdd5a1520aad8de5f6e2405b3fff3e9413d /compiler/rustc_mir_transform/src/coverage/spans.rs | |
| parent | d59f06fc64844ec2073e5e888f7470989ef25ff9 (diff) | |
| parent | 3f67118ae7dcd7c35ca18f23cac787254004bc62 (diff) | |
| download | rust-e45a937a117cdbe9cd69ed47e03f7ad28cc6ef29.tar.gz rust-e45a937a117cdbe9cd69ed47e03f7ad28cc6ef29.zip | |
Auto merge of #119438 - Zalathar:prepare-mappings, r=cjgillot
coverage: Prepare mappings separately from injecting statements These two tasks historically needed to be interleaved, but after various recent changes (including #116046 and #116917) they can now be fully separated. --- `@rustbot` label +A-code-coverage
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage/spans.rs')
| -rw-r--r-- | compiler/rustc_mir_transform/src/coverage/spans.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler/rustc_mir_transform/src/coverage/spans.rs b/compiler/rustc_mir_transform/src/coverage/spans.rs index ae43a18ad4e..ed091752187 100644 --- a/compiler/rustc_mir_transform/src/coverage/spans.rs +++ b/compiler/rustc_mir_transform/src/coverage/spans.rs @@ -48,8 +48,13 @@ impl CoverageSpans { !self.bcb_to_spans[bcb].is_empty() } - pub(super) fn spans_for_bcb(&self, bcb: BasicCoverageBlock) -> &[Span] { - &self.bcb_to_spans[bcb] + pub(super) fn bcbs_with_coverage_spans( + &self, + ) -> impl Iterator<Item = (BasicCoverageBlock, &[Span])> { + self.bcb_to_spans.iter_enumerated().filter_map(|(bcb, spans)| { + // Only yield BCBs that have at least one coverage span. + (!spans.is_empty()).then_some((bcb, spans.as_slice())) + }) } } |
