Skip to content

Commit 18e9b81

Browse files
committed
coverage: Prepare to split spans.rs into two files
1 parent 7823bf0 commit 18e9b81

File tree

3 files changed

+27
-26
lines changed

3 files changed

+27
-26
lines changed

compiler/rustc_mir_transform/src/coverage/mod.rs

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ pub mod query;
33
mod counters;
44
mod graph;
55
mod spans;
6-
76
#[cfg(test)]
87
mod tests;
98

compiler/rustc_mir_transform/src/coverage/spans.rs

+26-24
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1+
use std::collections::BTreeSet;
2+
13
use rustc_data_structures::graph::DirectedGraph;
24
use rustc_index::bit_set::BitSet;
35
use rustc_middle::mir;
46
use rustc_middle::mir::coverage::ConditionInfo;
57
use rustc_span::{BytePos, Span};
6-
use std::collections::BTreeSet;
78

89
use crate::coverage::graph::{BasicCoverageBlock, CoverageGraph, START_BCB};
9-
use crate::coverage::spans::from_mir::SpanFromMir;
10+
use crate::coverage::spans::from_mir::{extract_branch_pairs, extract_mcdc_mappings, SpanFromMir};
1011
use crate::coverage::ExtractedHirInfo;
1112

1213
mod from_mir;
@@ -91,28 +92,11 @@ pub(super) fn generate_coverage_spans(
9192
mappings.push(BcbMapping { kind: BcbMappingKind::Code(START_BCB), span });
9293
}
9394
} else {
94-
let sorted_spans = from_mir::mir_to_initial_sorted_coverage_spans(
95-
mir_body,
96-
hir_info,
97-
basic_coverage_blocks,
98-
);
99-
let coverage_spans = SpansRefiner::refine_sorted_spans(sorted_spans);
100-
mappings.extend(coverage_spans.into_iter().map(|RefinedCovspan { bcb, span, .. }| {
101-
// Each span produced by the generator represents an ordinary code region.
102-
BcbMapping { kind: BcbMappingKind::Code(bcb), span }
103-
}));
104-
105-
branch_pairs.extend(from_mir::extract_branch_pairs(
106-
mir_body,
107-
hir_info,
108-
basic_coverage_blocks,
109-
));
110-
111-
mappings.extend(from_mir::extract_mcdc_mappings(
112-
mir_body,
113-
hir_info.body_span,
114-
basic_coverage_blocks,
115-
));
95+
extract_refined_covspans(mir_body, hir_info, basic_coverage_blocks, &mut mappings);
96+
97+
branch_pairs.extend(extract_branch_pairs(mir_body, hir_info, basic_coverage_blocks));
98+
99+
mappings.extend(extract_mcdc_mappings(mir_body, hir_info.body_span, basic_coverage_blocks));
116100
}
117101

118102
if mappings.is_empty() && branch_pairs.is_empty() {
@@ -149,6 +133,24 @@ pub(super) fn generate_coverage_spans(
149133
Some(CoverageSpans { bcb_has_mappings, mappings, branch_pairs, test_vector_bitmap_bytes })
150134
}
151135

136+
#[allow(unused_imports)] // Remove this line during the actual split.
137+
pub(super) use from_mir::unexpand_into_body_span_with_visible_macro;
138+
139+
pub(super) fn extract_refined_covspans(
140+
mir_body: &mir::Body<'_>,
141+
hir_info: &ExtractedHirInfo,
142+
basic_coverage_blocks: &CoverageGraph,
143+
mappings: &mut impl Extend<BcbMapping>,
144+
) {
145+
let sorted_spans =
146+
from_mir::mir_to_initial_sorted_coverage_spans(mir_body, hir_info, basic_coverage_blocks);
147+
let coverage_spans = SpansRefiner::refine_sorted_spans(sorted_spans);
148+
mappings.extend(coverage_spans.into_iter().map(|RefinedCovspan { bcb, span, .. }| {
149+
// Each span produced by the generator represents an ordinary code region.
150+
BcbMapping { kind: BcbMappingKind::Code(bcb), span }
151+
}));
152+
}
153+
152154
#[derive(Debug)]
153155
struct CurrCovspan {
154156
span: Span,

compiler/rustc_mir_transform/src/coverage/spans/from_mir.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ fn filtered_terminator_span(terminator: &Terminator<'_>) -> Option<Span> {
287287
///
288288
/// [^1]Expansions result from Rust syntax including macros, syntactic sugar,
289289
/// etc.).
290-
fn unexpand_into_body_span_with_visible_macro(
290+
pub(crate) fn unexpand_into_body_span_with_visible_macro(
291291
original_span: Span,
292292
body_span: Span,
293293
) -> Option<(Span, Option<Symbol>)> {

0 commit comments

Comments
 (0)