@@ -2,7 +2,7 @@ use std::assert_matches::assert_matches;
2
2
use std:: collections:: hash_map:: Entry ;
3
3
4
4
use rustc_data_structures:: fx:: FxHashMap ;
5
- use rustc_middle:: mir:: coverage:: { BlockMarkerId , BranchSpan , CoverageKind } ;
5
+ use rustc_middle:: mir:: coverage:: { BlockMarkerId , BranchArm , CoverageKind } ;
6
6
use rustc_middle:: mir:: { self , BasicBlock , SourceInfo , UnOp } ;
7
7
use rustc_middle:: thir:: { ExprId , ExprKind , Pat , Thir } ;
8
8
use rustc_middle:: ty:: TyCtxt ;
@@ -18,7 +18,7 @@ pub(crate) struct BranchInfoBuilder {
18
18
nots : FxHashMap < ExprId , NotInfo > ,
19
19
20
20
markers : BlockMarkerGen ,
21
- branch_spans : Vec < BranchSpan > ,
21
+ branch_arm_lists : Vec < Vec < BranchArm > > ,
22
22
23
23
mcdc_info : Option < MCDCInfoBuilder > ,
24
24
}
@@ -70,7 +70,7 @@ impl BranchInfoBuilder {
70
70
Some ( Self {
71
71
nots : FxHashMap :: default ( ) ,
72
72
markers : BlockMarkerGen :: default ( ) ,
73
- branch_spans : vec ! [ ] ,
73
+ branch_arm_lists : vec ! [ ] ,
74
74
mcdc_info : tcx. sess . instrument_coverage_mcdc ( ) . then ( MCDCInfoBuilder :: new) ,
75
75
} )
76
76
} else {
@@ -141,24 +141,25 @@ impl BranchInfoBuilder {
141
141
let true_marker = self . markers . inject_block_marker ( cfg, source_info, true_block) ;
142
142
let false_marker = self . markers . inject_block_marker ( cfg, source_info, false_block) ;
143
143
144
- self . branch_spans . push ( BranchSpan {
144
+ let arm = |marker| BranchArm {
145
145
span : source_info. span ,
146
- true_marker,
147
- false_marker,
148
- } ) ;
146
+ pre_guard_marker : marker,
147
+ arm_taken_marker : marker,
148
+ } ;
149
+ self . branch_arm_lists . push ( vec ! [ arm( true_marker) , arm( false_marker) ] ) ;
149
150
}
150
151
}
151
152
152
153
pub ( crate ) fn into_done ( self ) -> Option < Box < mir:: coverage:: BranchInfo > > {
153
154
let Self {
154
155
nots : _,
155
156
markers : BlockMarkerGen { num_block_markers } ,
156
- branch_spans ,
157
+ branch_arm_lists ,
157
158
mcdc_info,
158
159
} = self ;
159
160
160
161
if num_block_markers == 0 {
161
- assert ! ( branch_spans . is_empty( ) ) ;
162
+ assert ! ( branch_arm_lists . is_empty( ) ) ;
162
163
return None ;
163
164
}
164
165
@@ -167,7 +168,7 @@ impl BranchInfoBuilder {
167
168
168
169
Some ( Box :: new ( mir:: coverage:: BranchInfo {
169
170
num_block_markers,
170
- branch_spans ,
171
+ branch_arm_lists ,
171
172
mcdc_branch_spans,
172
173
mcdc_decision_spans,
173
174
} ) )
@@ -240,7 +241,7 @@ impl<'tcx> Builder<'_, 'tcx> {
240
241
}
241
242
242
243
/// If branch coverage is enabled, inject marker statements into `then_block`
243
- /// and `else_block`, and record their IDs in the table of branch spans .
244
+ /// and `else_block`, and record their IDs in the branch table .
244
245
pub ( crate ) fn visit_coverage_branch_condition (
245
246
& mut self ,
246
247
mut expr_id : ExprId ,
0 commit comments