@@ -11,7 +11,7 @@ use rustc_middle::mir::{
11
11
use rustc_middle:: ty:: TyCtxt ;
12
12
13
13
use rustc_span:: source_map:: original_sp;
14
- use rustc_span:: { BytePos , Span , SyntaxContext } ;
14
+ use rustc_span:: { BytePos , Span } ;
15
15
16
16
use std:: cmp:: Ordering ;
17
17
@@ -246,8 +246,8 @@ impl<'a, 'tcx> CoverageSpans<'a, 'tcx> {
246
246
) -> Vec < CoverageSpan > {
247
247
let mut coverage_spans = CoverageSpans {
248
248
mir_body,
249
- fn_sig_span : fn_sig_span . with_ctxt ( SyntaxContext :: root ( ) ) ,
250
- body_span : body_span . with_ctxt ( SyntaxContext :: root ( ) ) ,
249
+ fn_sig_span : fn_sig_source_span ( fn_sig_span , body_span ) ,
250
+ body_span,
251
251
basic_coverage_blocks,
252
252
sorted_spans_iter : None ,
253
253
refined_spans : Vec :: with_capacity ( basic_coverage_blocks. num_nodes ( ) * 2 ) ,
@@ -731,8 +731,13 @@ pub(super) fn filtered_terminator_span(
731
731
}
732
732
}
733
733
734
+ #[ inline]
735
+ fn fn_sig_source_span ( fn_sig_span : Span , body_span : Span ) -> Span {
736
+ original_sp ( fn_sig_span, body_span) . with_ctxt ( body_span. ctxt ( ) )
737
+ }
738
+
734
739
#[ inline]
735
740
fn function_source_span ( span : Span , body_span : Span ) -> Span {
736
- let span = original_sp ( span, body_span) . with_ctxt ( SyntaxContext :: root ( ) ) ;
741
+ let span = original_sp ( span, body_span) . with_ctxt ( body_span . ctxt ( ) ) ;
737
742
if body_span. contains ( span) { span } else { body_span }
738
743
}
0 commit comments