@@ -11,7 +11,7 @@ use rustc_middle::mir::{
1111use rustc_middle:: ty:: TyCtxt ;
1212
1313use rustc_span:: source_map:: original_sp;
14- use rustc_span:: { BytePos , Span , SyntaxContext } ;
14+ use rustc_span:: { BytePos , Span } ;
1515
1616use std:: cmp:: Ordering ;
1717
@@ -246,8 +246,8 @@ impl<'a, 'tcx> CoverageSpans<'a, 'tcx> {
246246 ) -> Vec < CoverageSpan > {
247247 let mut coverage_spans = CoverageSpans {
248248 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,
251251 basic_coverage_blocks,
252252 sorted_spans_iter : None ,
253253 refined_spans : Vec :: with_capacity ( basic_coverage_blocks. num_nodes ( ) * 2 ) ,
@@ -731,8 +731,13 @@ pub(super) fn filtered_terminator_span(
731731 }
732732}
733733
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+
734739#[ inline]
735740fn 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 ( ) ) ;
737742 if body_span. contains ( span) { span } else { body_span }
738743}
0 commit comments