diff --git a/compiler/rustc_expand/src/proc_macro_server.rs b/compiler/rustc_expand/src/proc_macro_server.rs index 71dfd3158dcc..eb5a78d271f9 100644 --- a/compiler/rustc_expand/src/proc_macro_server.rs +++ b/compiler/rustc_expand/src/proc_macro_server.rs @@ -635,7 +635,15 @@ impl server::Span for Rustc<'_, '_> { } fn byte_range(&mut self, span: Self::Span) -> Range { - Range { start: span.lo().0 as usize, end: span.hi().0 as usize } + let source_map = self.sess().source_map(); + + let relative_start_pos = source_map.lookup_byte_offset(span.lo()).pos; + let relative_end_pos = source_map.lookup_byte_offset(span.hi()).pos; + + Range { + start: relative_start_pos.0 as usize, + end: relative_end_pos.0 as usize + } } fn start(&mut self, span: Self::Span) -> LineColumn {