about summary refs log tree commit diff
path: root/src/libsyntax_ext
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2018-12-26 20:05:56 -0800
committerEsteban Küber <esteban@kuber.com.ar>2018-12-26 20:36:02 -0800
commit5e75001c596991d63729b41769164197db6fc5c8 (patch)
tree2f5339c9d148bfbd43497a3a81414032de2dd74d /src/libsyntax_ext
parenta1bad57fa59a8069a6ebb05cd6a2ae73c88b2e98 (diff)
downloadrust-5e75001c596991d63729b41769164197db6fc5c8.tar.gz
rust-5e75001c596991d63729b41769164197db6fc5c8.zip
Point at correct span for arguments in format strings
When a format string has escaped whitespace characters format
arguments were shifted by one per each escaped character. Account
for these escaped characters when synthesizing the spans.

Fix #55155.
Diffstat (limited to 'src/libsyntax_ext')
-rw-r--r--src/libsyntax_ext/format.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libsyntax_ext/format.rs b/src/libsyntax_ext/format.rs
index 220765fd8c7..17e692d1d32 100644
--- a/src/libsyntax_ext/format.rs
+++ b/src/libsyntax_ext/format.rs
@@ -861,7 +861,9 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt,
     }
 
     let arg_spans = parser.arg_places.iter()
-        .map(|&(start, end)| fmt.span.from_inner_byte_pos(start, end))
+        .map(|&(parse::SpanIndex(start), parse::SpanIndex(end))| {
+            fmt.span.from_inner_byte_pos(start, end)
+        })
         .collect();
 
     let mut cx = Context {