@@ -9,7 +9,7 @@ mod tests;
9
9
10
10
use self :: counters:: { CounterIncrementSite , CoverageCounters } ;
11
11
use self :: graph:: { BasicCoverageBlock , CoverageGraph } ;
12
- use self :: mappings:: CoverageSpans ;
12
+ use self :: mappings:: ExtractedMappings ;
13
13
14
14
use crate :: MirPass ;
15
15
@@ -69,17 +69,17 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
69
69
let basic_coverage_blocks = CoverageGraph :: from_mir ( mir_body) ;
70
70
71
71
////////////////////////////////////////////////////
72
- // Compute coverage spans from the `CoverageGraph` .
73
- let coverage_spans =
74
- mappings:: generate_coverage_spans ( mir_body, & hir_info, & basic_coverage_blocks) ;
72
+ // Extract coverage spans and other mapping info from MIR .
73
+ let extracted_mappings =
74
+ mappings:: extract_all_mapping_info_from_mir ( mir_body, & hir_info, & basic_coverage_blocks) ;
75
75
76
76
////////////////////////////////////////////////////
77
77
// Create an optimized mix of `Counter`s and `Expression`s for the `CoverageGraph`. Ensure
78
78
// every coverage span has a `Counter` or `Expression` assigned to its `BasicCoverageBlock`
79
79
// and all `Expression` dependencies (operands) are also generated, for any other
80
80
// `BasicCoverageBlock`s not already associated with a coverage span.
81
81
let bcbs_with_counter_mappings =
82
- coverage_spans . all_bcbs_with_counter_mappings ( & basic_coverage_blocks) ;
82
+ extracted_mappings . all_bcbs_with_counter_mappings ( & basic_coverage_blocks) ;
83
83
if bcbs_with_counter_mappings. is_empty ( ) {
84
84
// No relevant spans were found in MIR, so skip instrumenting this function.
85
85
return ;
@@ -89,7 +89,7 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
89
89
let coverage_counters =
90
90
CoverageCounters :: make_bcb_counters ( & basic_coverage_blocks, bcb_has_counter_mappings) ;
91
91
92
- let mappings = create_mappings ( tcx, & hir_info, & coverage_spans , & coverage_counters) ;
92
+ let mappings = create_mappings ( tcx, & hir_info, & extracted_mappings , & coverage_counters) ;
93
93
if mappings. is_empty ( ) {
94
94
// No spans could be converted into valid mappings, so skip this function.
95
95
debug ! ( "no spans could be converted into valid mappings; skipping" ) ;
@@ -103,9 +103,9 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
103
103
& coverage_counters,
104
104
) ;
105
105
106
- inject_mcdc_statements ( mir_body, & basic_coverage_blocks, & coverage_spans ) ;
106
+ inject_mcdc_statements ( mir_body, & basic_coverage_blocks, & extracted_mappings ) ;
107
107
108
- let mcdc_num_condition_bitmaps = coverage_spans
108
+ let mcdc_num_condition_bitmaps = extracted_mappings
109
109
. mcdc_decisions
110
110
. iter ( )
111
111
. map ( |& mappings:: MCDCDecision { decision_depth, .. } | decision_depth)
@@ -115,7 +115,7 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
115
115
mir_body. function_coverage_info = Some ( Box :: new ( FunctionCoverageInfo {
116
116
function_source_hash : hir_info. function_source_hash ,
117
117
num_counters : coverage_counters. num_counters ( ) ,
118
- mcdc_bitmap_bytes : coverage_spans . mcdc_bitmap_bytes ,
118
+ mcdc_bitmap_bytes : extracted_mappings . mcdc_bitmap_bytes ,
119
119
expressions : coverage_counters. into_expressions ( ) ,
120
120
mappings,
121
121
mcdc_num_condition_bitmaps,
@@ -130,7 +130,7 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
130
130
fn create_mappings < ' tcx > (
131
131
tcx : TyCtxt < ' tcx > ,
132
132
hir_info : & ExtractedHirInfo ,
133
- coverage_spans : & CoverageSpans ,
133
+ extracted_mappings : & ExtractedMappings ,
134
134
coverage_counters : & CoverageCounters ,
135
135
) -> Vec < Mapping > {
136
136
let source_map = tcx. sess . source_map ( ) ;
@@ -152,13 +152,13 @@ fn create_mappings<'tcx>(
152
152
let region_for_span = |span : Span | make_code_region ( source_map, file_name, span, body_span) ;
153
153
154
154
// Fully destructure the mappings struct to make sure we don't miss any kinds.
155
- let CoverageSpans {
155
+ let ExtractedMappings {
156
156
code_mappings,
157
157
branch_pairs,
158
158
mcdc_bitmap_bytes : _,
159
159
mcdc_branches,
160
160
mcdc_decisions,
161
- } = coverage_spans ;
161
+ } = extracted_mappings ;
162
162
let mut mappings = Vec :: new ( ) ;
163
163
164
164
mappings. extend ( code_mappings. iter ( ) . filter_map (
@@ -261,7 +261,7 @@ fn inject_coverage_statements<'tcx>(
261
261
fn inject_mcdc_statements < ' tcx > (
262
262
mir_body : & mut mir:: Body < ' tcx > ,
263
263
basic_coverage_blocks : & CoverageGraph ,
264
- coverage_spans : & CoverageSpans ,
264
+ extracted_mappings : & ExtractedMappings ,
265
265
) {
266
266
// Inject test vector update first because `inject_statement` always insert new statement at head.
267
267
for & mappings:: MCDCDecision {
@@ -270,7 +270,7 @@ fn inject_mcdc_statements<'tcx>(
270
270
bitmap_idx,
271
271
conditions_num : _,
272
272
decision_depth,
273
- } in & coverage_spans . mcdc_decisions
273
+ } in & extracted_mappings . mcdc_decisions
274
274
{
275
275
for end in end_bcbs {
276
276
let end_bb = basic_coverage_blocks[ * end] . leader_bb ( ) ;
@@ -283,7 +283,7 @@ fn inject_mcdc_statements<'tcx>(
283
283
}
284
284
285
285
for & mappings:: MCDCBranch { span : _, true_bcb, false_bcb, condition_info, decision_depth } in
286
- & coverage_spans . mcdc_branches
286
+ & extracted_mappings . mcdc_branches
287
287
{
288
288
let Some ( condition_info) = condition_info else { continue } ;
289
289
let id = condition_info. condition_id ;
0 commit comments