mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-15 13:36:49 +00:00
Rollup merge of #91575 - compiler-errors:issue-91556, r=cjgillot
Fix ICE on format string of macro with secondary-label This generalizes the fix #86104 to also correctly skip `Span::from_inner` for the `secondary_label` of a format macro parsing error as well. We can alternatively skip the `span_label` diagnostic call for the secondary label as well, since that label probably only makes sense when the _proper_ span is computed. Fixes #91556
This commit is contained in:
commit
6cfe9af6a0
@ -995,8 +995,9 @@ pub fn expand_preparsed_format_args(
|
||||
e.note(¬e);
|
||||
}
|
||||
if let Some((label, span)) = err.secondary_label {
|
||||
let sp = fmt_span.from_inner(span);
|
||||
e.span_label(sp, label);
|
||||
if efmt_kind_is_lit {
|
||||
e.span_label(fmt_span.from_inner(span), label);
|
||||
}
|
||||
}
|
||||
e.emit();
|
||||
return DummyResult::raw_expr(sp, true);
|
||||
|
8
src/test/ui/fmt/issue-91556.rs
Normal file
8
src/test/ui/fmt/issue-91556.rs
Normal file
@ -0,0 +1,8 @@
|
||||
fn main() {
|
||||
let _ = format!(concat!("{0}𝖳𝖾𝗌𝗍{"), i);
|
||||
//~^ ERROR: invalid format string: expected `'}'` but string was terminated
|
||||
//~| NOTE: if you intended to print `{`, you can escape it using `{{`
|
||||
//~| NOTE: in this expansion of concat!
|
||||
//~| NOTE: in this expansion of concat!
|
||||
//~| NOTE: expected `'}'` in format string
|
||||
}
|
11
src/test/ui/fmt/issue-91556.stderr
Normal file
11
src/test/ui/fmt/issue-91556.stderr
Normal file
@ -0,0 +1,11 @@
|
||||
error: invalid format string: expected `'}'` but string was terminated
|
||||
--> $DIR/issue-91556.rs:2:19
|
||||
|
|
||||
LL | let _ = format!(concat!("{0}𝖳𝖾𝗌𝗍{"), i);
|
||||
| ^^^^^^^^^^^^^^^^^^^ expected `'}'` in format string
|
||||
|
|
||||
= note: if you intended to print `{`, you can escape it using `{{`
|
||||
= note: this error originates in the macro `concat` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
Loading…
Reference in New Issue
Block a user