@@ -4,7 +4,7 @@ use std::collections::VecDeque;
4
4
5
5
use rustc_data_structures:: fx:: FxHashMap ;
6
6
use rustc_middle:: mir:: coverage:: {
7
- BlockMarkerId , BranchSpan , ConditionId , ConditionInfo , CoverageKind , MCDCBranchSpan ,
7
+ BlockMarkerId , BranchArm , ConditionId , ConditionInfo , CoverageKind , MCDCBranchSpan ,
8
8
MCDCDecisionSpan ,
9
9
} ;
10
10
use rustc_middle:: mir:: { self , BasicBlock , SourceInfo , UnOp } ;
@@ -21,7 +21,7 @@ pub(crate) struct BranchInfoBuilder {
21
21
nots : FxHashMap < ExprId , NotInfo > ,
22
22
23
23
num_block_markers : usize ,
24
- branch_spans : Vec < BranchSpan > ,
24
+ branch_arm_lists : Vec < Vec < BranchArm > > ,
25
25
26
26
mcdc_branch_spans : Vec < MCDCBranchSpan > ,
27
27
mcdc_decision_spans : Vec < MCDCDecisionSpan > ,
@@ -46,7 +46,7 @@ impl BranchInfoBuilder {
46
46
Some ( Self {
47
47
nots : FxHashMap :: default ( ) ,
48
48
num_block_markers : 0 ,
49
- branch_spans : vec ! [ ] ,
49
+ branch_arm_lists : vec ! [ ] ,
50
50
mcdc_branch_spans : vec ! [ ] ,
51
51
mcdc_decision_spans : vec ! [ ] ,
52
52
mcdc_state : MCDCState :: new_if_enabled ( tcx) ,
@@ -144,7 +144,12 @@ impl BranchInfoBuilder {
144
144
let true_marker = self . inject_block_marker ( cfg, source_info, true_block) ;
145
145
let false_marker = self . inject_block_marker ( cfg, source_info, false_block) ;
146
146
147
- self . branch_spans . push ( BranchSpan { span : source_info. span , true_marker, false_marker } ) ;
147
+ let arm = |marker| BranchArm {
148
+ span : source_info. span ,
149
+ pre_guard_marker : marker,
150
+ arm_taken_marker : marker,
151
+ } ;
152
+ self . branch_arm_lists . push ( vec ! [ arm( true_marker) , arm( false_marker) ] ) ;
148
153
}
149
154
150
155
fn next_block_marker_id ( & mut self ) -> BlockMarkerId {
@@ -174,20 +179,20 @@ impl BranchInfoBuilder {
174
179
let Self {
175
180
nots : _,
176
181
num_block_markers,
177
- branch_spans ,
182
+ branch_arm_lists ,
178
183
mcdc_branch_spans,
179
184
mcdc_decision_spans,
180
185
mcdc_state : _,
181
186
} = self ;
182
187
183
188
if num_block_markers == 0 {
184
- assert ! ( branch_spans . is_empty( ) ) ;
189
+ assert ! ( branch_arm_lists . is_empty( ) ) ;
185
190
return None ;
186
191
}
187
192
188
193
Some ( Box :: new ( mir:: coverage:: BranchInfo {
189
194
num_block_markers,
190
- branch_spans ,
195
+ branch_arm_lists ,
191
196
mcdc_branch_spans,
192
197
mcdc_decision_spans,
193
198
} ) )
@@ -337,7 +342,7 @@ impl MCDCState {
337
342
338
343
impl Builder < ' _ , ' _ > {
339
344
/// If branch coverage is enabled, inject marker statements into `then_block`
340
- /// and `else_block`, and record their IDs in the table of branch spans .
345
+ /// and `else_block`, and record their IDs in the table of branches .
341
346
pub ( crate ) fn visit_coverage_branch_condition (
342
347
& mut self ,
343
348
mut expr_id : ExprId ,
0 commit comments