@@ -14,9 +14,7 @@ use self::spans::{CoverageSpan, CoverageSpans};
14
14
15
15
use crate :: MirPass ;
16
16
17
- use rustc_data_structures:: graph:: WithNumNodes ;
18
17
use rustc_data_structures:: sync:: Lrc ;
19
- use rustc_index:: IndexVec ;
20
18
use rustc_middle:: hir;
21
19
use rustc_middle:: middle:: codegen_fn_attrs:: CodegenFnAttrFlags ;
22
20
use rustc_middle:: mir:: coverage:: * ;
@@ -296,22 +294,15 @@ impl<'a, 'tcx> Instrumentor<'a, 'tcx> {
296
294
let body_span = self . body_span ;
297
295
let file_name = Symbol :: intern ( & self . source_file . name . prefer_remapped ( ) . to_string_lossy ( ) ) ;
298
296
299
- let mut bcb_counters = IndexVec :: from_elem_n ( None , self . basic_coverage_blocks . num_nodes ( ) ) ;
300
-
301
297
// Group the coverage spans by BCB, and process each BCB's spans at once.
302
298
all_coverage_spans. sort_by_key ( |span| span. bcb ) ;
303
299
for bcb_spans in all_coverage_spans. group_by ( |a, b| a. bcb == b. bcb ) {
304
300
let bcb = bcb_spans[ 0 ] . bcb ;
305
301
306
- let counter_kind = if let Some ( & counter_operand) = bcb_counters[ bcb] . as_ref ( ) {
307
- self . coverage_counters . make_identity_counter ( counter_operand)
308
- } else if let Some ( counter_kind) = self . coverage_counters . take_bcb_counter ( bcb) {
309
- bcb_counters[ bcb] = Some ( counter_kind. as_operand ( ) ) ;
310
- debug_used_expressions. add_expression_operands ( & counter_kind) ;
311
- counter_kind
312
- } else {
302
+ let counter_kind = self . coverage_counters . take_bcb_counter ( bcb) . unwrap_or_else ( || {
313
303
bug ! ( "Every BasicCoverageBlock should have a Counter or Expression" ) ;
314
- } ;
304
+ } ) ;
305
+ debug_used_expressions. add_expression_operands ( & counter_kind) ;
315
306
graphviz_data. add_bcb_coverage_spans_with_counter ( bcb, bcb_spans, & counter_kind) ;
316
307
317
308
// Convert the coverage spans into a vector of code regions to be
0 commit comments