diff options
| author | bors <bors@rust-lang.org> | 2018-12-29 07:28:15 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-12-29 07:28:15 +0000 |
| commit | 35a64f8bbfab3e063754cc9fc51a6ad795269b50 (patch) | |
| tree | 4d8734d68ce8c615145b5398122726549f2b6b2a /src/libsyntax_ext | |
| parent | 43d26b1f35401c9341154192db000db456ee5ca2 (diff) | |
| parent | 5e952e34795360c3f0c6661d993585146a4bdd2b (diff) | |
Auto merge of #57140 - estebank:str-err, r=varkor
Tweaks to format string diagnostics Add label spans and fix incorrect spans. Fix #55155, fix #55350.
Diffstat (limited to 'src/libsyntax_ext')
| -rw-r--r-- | src/libsyntax_ext/format.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/libsyntax_ext/format.rs b/src/libsyntax_ext/format.rs index 9d29e2b0fb6..95bb8c886ab 100644 --- a/src/libsyntax_ext/format.rs +++ b/src/libsyntax_ext/format.rs @@ -860,7 +860,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 { @@ -954,13 +956,18 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt, let mut diag = { if errs_len == 1 { let (sp, msg) = errs.into_iter().next().unwrap(); - cx.ecx.struct_span_err(sp, msg) + let mut diag = cx.ecx.struct_span_err(sp, msg); + diag.span_label(sp, msg); + diag } else { let mut diag = cx.ecx.struct_span_err( errs.iter().map(|&(sp, _)| sp).collect::<Vec<Span>>(), "multiple unused formatting arguments", ); diag.span_label(cx.fmtsp, "multiple missing formatting specifiers"); + for (sp, msg) in errs { + diag.span_label(sp, msg); + } diag } }; |
