diff options
| author | Michael van Straten <michael@vanstraten.de> | 2023-04-19 13:02:30 +0200 |
|---|---|---|
| committer | Michael van Straten <michael@vanstraten.de> | 2023-04-19 13:02:30 +0200 |
| commit | 3d49cc1198f2e79b093b8e96520095e793b3970d (patch) | |
| tree | 7c9f3e44557b1fc77983ea98bb4814366075f30f | |
| parent | c67ae04acae514ba9a3ce04fde12d1bb23cf5ca1 (diff) | |
| download | rust-3d49cc1198f2e79b093b8e96520095e793b3970d.tar.gz rust-3d49cc1198f2e79b093b8e96520095e793b3970d.zip | |
Translated absolute byte offset to relative
| -rw-r--r-- | compiler/rustc_expand/src/proc_macro_server.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/compiler/rustc_expand/src/proc_macro_server.rs b/compiler/rustc_expand/src/proc_macro_server.rs index 71dfd3158dc..eb5a78d271f 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<usize> { - 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 { |
