Use correct spans for format string errors
When encountering format string errors in a raw string, or regular
string literal with embedded newlines, account for the positional
change to use correct spans.
:drive by fix: 🚗
This commit is contained in:
parent
154dee2dcc
commit
f4306ffbfc
7 changed files with 123 additions and 21 deletions
|
|
@ -8,6 +8,8 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// ignore-tidy-tab
|
||||
|
||||
fn main() {
|
||||
println!("{");
|
||||
//~^ ERROR invalid format string: expected `'}'` but string was terminated
|
||||
|
|
@ -24,4 +26,36 @@ fn main() {
|
|||
//~^ ERROR invalid format string: unmatched `}` found
|
||||
let _ = format!("{\\}");
|
||||
//~^ ERROR invalid format string: expected `'}'`, found `'\\'`
|
||||
let _ = format!("\n\n\n{\n\n\n");
|
||||
//~^ ERROR invalid format string
|
||||
let _ = format!(r###"
|
||||
|
||||
|
||||
|
||||
{"###);
|
||||
//~^ ERROR invalid format string
|
||||
let _ = format!(r###"
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"###);
|
||||
//~^^ ERROR invalid format string
|
||||
let _ = format!(r###"
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
"###);
|
||||
//~^^^ ERROR invalid format string
|
||||
let _ = format!(r###"
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
"###);
|
||||
//~^^^ ERROR invalid format string: unmatched `}` found
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
error: invalid format string: expected `'}'` but string was terminated
|
||||
--> $DIR/format-string-error.rs:12:16
|
||||
--> $DIR/format-string-error.rs:14:16
|
||||
|
|
||||
LL | println!("{");
|
||||
| ^ expected `'}'` in format string
|
||||
|
|
@ -7,7 +7,7 @@ LL | println!("{");
|
|||
= note: if you intended to print `{`, you can escape it using `{{`
|
||||
|
||||
error: invalid format string: unmatched `}` found
|
||||
--> $DIR/format-string-error.rs:15:15
|
||||
--> $DIR/format-string-error.rs:17:15
|
||||
|
|
||||
LL | println!("}");
|
||||
| ^ unmatched `}` in format string
|
||||
|
|
@ -15,7 +15,7 @@ LL | println!("}");
|
|||
= note: if you intended to print `}`, you can escape it using `}}`
|
||||
|
||||
error: invalid format string: invalid argument name `_foo`
|
||||
--> $DIR/format-string-error.rs:17:23
|
||||
--> $DIR/format-string-error.rs:19:23
|
||||
|
|
||||
LL | let _ = format!("{_foo}", _foo = 6usize);
|
||||
| ^^^^ invalid argument name in format string
|
||||
|
|
@ -23,7 +23,7 @@ LL | let _ = format!("{_foo}", _foo = 6usize);
|
|||
= note: argument names cannot start with an underscore
|
||||
|
||||
error: invalid format string: invalid argument name `_`
|
||||
--> $DIR/format-string-error.rs:19:23
|
||||
--> $DIR/format-string-error.rs:21:23
|
||||
|
|
||||
LL | let _ = format!("{_}", _ = 6usize);
|
||||
| ^ invalid argument name in format string
|
||||
|
|
@ -31,7 +31,7 @@ LL | let _ = format!("{_}", _ = 6usize);
|
|||
= note: argument names cannot start with an underscore
|
||||
|
||||
error: invalid format string: expected `'}'` but string was terminated
|
||||
--> $DIR/format-string-error.rs:21:23
|
||||
--> $DIR/format-string-error.rs:23:23
|
||||
|
|
||||
LL | let _ = format!("{");
|
||||
| ^ expected `'}'` in format string
|
||||
|
|
@ -39,7 +39,7 @@ LL | let _ = format!("{");
|
|||
= note: if you intended to print `{`, you can escape it using `{{`
|
||||
|
||||
error: invalid format string: unmatched `}` found
|
||||
--> $DIR/format-string-error.rs:23:22
|
||||
--> $DIR/format-string-error.rs:25:22
|
||||
|
|
||||
LL | let _ = format!("}");
|
||||
| ^ unmatched `}` in format string
|
||||
|
|
@ -47,10 +47,50 @@ LL | let _ = format!("}");
|
|||
= note: if you intended to print `}`, you can escape it using `}}`
|
||||
|
||||
error: invalid format string: expected `'}'`, found `'/'`
|
||||
--> $DIR/format-string-error.rs:25:23
|
||||
--> $DIR/format-string-error.rs:27:23
|
||||
|
|
||||
LL | let _ = format!("{/}");
|
||||
| ^ expected `}` in format string
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
error: invalid format string: expected `'}'` but string was terminated
|
||||
--> $DIR/format-string-error.rs:29:29
|
||||
|
|
||||
LL | let _ = format!("/n/n/n{/n/n/n");
|
||||
| ^ expected `'}'` in format string
|
||||
|
|
||||
= note: if you intended to print `{`, you can escape it using `{{`
|
||||
|
||||
error: invalid format string: expected `'}'` but string was terminated
|
||||
--> $DIR/format-string-error.rs:35:3
|
||||
|
|
||||
LL | {"###);
|
||||
| ^ expected `'}'` in format string
|
||||
|
|
||||
= note: if you intended to print `{`, you can escape it using `{{`
|
||||
|
||||
error: invalid format string: expected `'}'` but string was terminated
|
||||
--> $DIR/format-string-error.rs:42:1
|
||||
|
|
||||
LL |
|
||||
| ^ expected `'}'` in format string
|
||||
|
|
||||
= note: if you intended to print `{`, you can escape it using `{{`
|
||||
|
||||
error: invalid format string: unmatched `}` found
|
||||
--> $DIR/format-string-error.rs:49:2
|
||||
|
|
||||
LL | }
|
||||
| ^ unmatched `}` in format string
|
||||
|
|
||||
= note: if you intended to print `}`, you can escape it using `}}`
|
||||
|
||||
error: invalid format string: unmatched `}` found
|
||||
--> $DIR/format-string-error.rs:57:9
|
||||
|
|
||||
LL | }
|
||||
| ^ unmatched `}` in format string
|
||||
|
|
||||
= note: if you intended to print `}`, you can escape it using `}}`
|
||||
|
||||
error: aborting due to 12 previous errors
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue