File tree 1 file changed +7
-7
lines changed
compiler/rustc_mir_transform/src/coverage
1 file changed +7
-7
lines changed Original file line number Diff line number Diff line change @@ -132,11 +132,13 @@ impl PrevCovspan {
132
132
self . merged_spans . push ( other. span ) ;
133
133
}
134
134
135
- fn cutoff_statements_at ( & mut self , cutoff_pos : BytePos ) {
135
+ fn cutoff_statements_at ( mut self , cutoff_pos : BytePos ) -> Option < RefinedCovspan > {
136
136
self . merged_spans . retain ( |span| span. hi ( ) <= cutoff_pos) ;
137
137
if let Some ( max_hi) = self . merged_spans . iter ( ) . map ( |span| span. hi ( ) ) . max ( ) {
138
138
self . span = self . span . with_hi ( max_hi) ;
139
139
}
140
+
141
+ if self . merged_spans . is_empty ( ) { None } else { Some ( self . into_refined ( ) ) }
140
142
}
141
143
142
144
fn refined_copy ( & self ) -> RefinedCovspan {
@@ -372,13 +374,11 @@ impl SpansRefiner {
372
374
) ;
373
375
374
376
let curr_span = self . curr ( ) . span ;
375
- self . prev_mut ( ) . cutoff_statements_at ( curr_span. lo ( ) ) ;
376
- if self . prev ( ) . merged_spans . is_empty ( ) {
377
- debug ! ( " ... no non-overlapping statements to add" ) ;
378
- } else {
379
- debug ! ( " ... adding modified prev={:?}" , self . prev( ) ) ;
380
- let prev = self . take_prev ( ) . into_refined ( ) ;
377
+ if let Some ( prev) = self . take_prev ( ) . cutoff_statements_at ( curr_span. lo ( ) ) {
378
+ debug ! ( "after cutoff, adding {prev:?}" ) ;
381
379
self . refined_spans . push ( prev) ;
380
+ } else {
381
+ debug ! ( "prev was eliminated by cutoff" ) ;
382
382
}
383
383
}
384
384
}
You can’t perform that action at this time.
0 commit comments