@@ -14,9 +14,7 @@ use self::spans::{CoverageSpan, CoverageSpans};
1414
1515use crate :: MirPass ;
1616
17- use rustc_data_structures:: graph:: WithNumNodes ;
1817use rustc_data_structures:: sync:: Lrc ;
19- use rustc_index:: IndexVec ;
2018use rustc_middle:: hir;
2119use rustc_middle:: middle:: codegen_fn_attrs:: CodegenFnAttrFlags ;
2220use rustc_middle:: mir:: coverage:: * ;
@@ -296,22 +294,15 @@ impl<'a, 'tcx> Instrumentor<'a, 'tcx> {
296294 let body_span = self . body_span ;
297295 let file_name = Symbol :: intern ( & self . source_file . name . prefer_remapped ( ) . to_string_lossy ( ) ) ;
298296
299- let mut bcb_counters = IndexVec :: from_elem_n ( None , self . basic_coverage_blocks . num_nodes ( ) ) ;
300-
301297 // Group the coverage spans by BCB, and process each BCB's spans at once.
302298 all_coverage_spans. sort_by_key ( |span| span. bcb ) ;
303299 for bcb_spans in all_coverage_spans. group_by ( |a, b| a. bcb == b. bcb ) {
304300 let bcb = bcb_spans[ 0 ] . bcb ;
305301
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 ( || {
313303 bug ! ( "Every BasicCoverageBlock should have a Counter or Expression" ) ;
314- } ;
304+ } ) ;
305+ debug_used_expressions. add_expression_operands ( & counter_kind) ;
315306 graphviz_data. add_bcb_coverage_spans_with_counter ( bcb, bcb_spans, & counter_kind) ;
316307
317308 // Convert the coverage spans into a vector of code regions to be
0 commit comments