Point at internal span in format string
This commit is contained in:
parent
d3b3bc5767
commit
38abca8c2d
5 changed files with 224 additions and 18 deletions
187
src/test/ui/ifmt-bad-arg.stderr
Normal file
187
src/test/ui/ifmt-bad-arg.stderr
Normal file
|
|
@ -0,0 +1,187 @@
|
|||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/ifmt-bad-arg.rs:16:14
|
||||
|
|
||||
LL | format!("{}");
|
||||
| ^^
|
||||
|
||||
error: invalid reference to positional argument 1 (there is 1 argument)
|
||||
--> $DIR/ifmt-bad-arg.rs:19:14
|
||||
|
|
||||
LL | format!("{1}", 1);
|
||||
| ^^^
|
||||
|
|
||||
= note: positional arguments are zero-based
|
||||
|
||||
error: argument never used
|
||||
--> $DIR/ifmt-bad-arg.rs:19:20
|
||||
|
|
||||
LL | format!("{1}", 1);
|
||||
| ^
|
||||
|
||||
error: 2 positional arguments in format string, but no arguments were given
|
||||
--> $DIR/ifmt-bad-arg.rs:23:14
|
||||
|
|
||||
LL | format!("{} {}");
|
||||
| ^^ ^^
|
||||
|
||||
error: invalid reference to positional argument 1 (there is 1 argument)
|
||||
--> $DIR/ifmt-bad-arg.rs:26:14
|
||||
|
|
||||
LL | format!("{0} {1}", 1);
|
||||
| ^^^ ^^^
|
||||
|
|
||||
= note: positional arguments are zero-based
|
||||
|
||||
error: invalid reference to positional argument 2 (there are 2 arguments)
|
||||
--> $DIR/ifmt-bad-arg.rs:29:14
|
||||
|
|
||||
LL | format!("{0} {1} {2}", 1, 2);
|
||||
| ^^^ ^^^ ^^^
|
||||
|
|
||||
= note: positional arguments are zero-based
|
||||
|
||||
error: invalid reference to positional argument 2 (there are 2 arguments)
|
||||
--> $DIR/ifmt-bad-arg.rs:32:14
|
||||
|
|
||||
LL | format!("{} {value} {} {}", 1, value=2);
|
||||
| ^^ ^^^^^^^ ^^ ^^
|
||||
|
|
||||
= note: positional arguments are zero-based
|
||||
|
||||
error: invalid reference to positional arguments 3, 4 and 5 (there are 3 arguments)
|
||||
--> $DIR/ifmt-bad-arg.rs:34:14
|
||||
|
|
||||
LL | format!("{name} {value} {} {} {} {} {} {}", 0, name=1, value=2);
|
||||
| ^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^
|
||||
|
|
||||
= note: positional arguments are zero-based
|
||||
|
||||
error: there is no argument named `foo`
|
||||
--> $DIR/ifmt-bad-arg.rs:37:13
|
||||
|
|
||||
LL | format!("{} {foo} {} {bar} {}", 1, 2, 3);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: there is no argument named `bar`
|
||||
--> $DIR/ifmt-bad-arg.rs:37:13
|
||||
|
|
||||
LL | format!("{} {foo} {} {bar} {}", 1, 2, 3);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: there is no argument named `foo`
|
||||
--> $DIR/ifmt-bad-arg.rs:41:13
|
||||
|
|
||||
LL | format!("{foo}"); //~ ERROR: no argument named `foo`
|
||||
| ^^^^^^^
|
||||
|
||||
error: multiple unused formatting arguments
|
||||
--> $DIR/ifmt-bad-arg.rs:42:17
|
||||
|
|
||||
LL | format!("", 1, 2); //~ ERROR: multiple unused formatting arguments
|
||||
| -- ^ ^
|
||||
| |
|
||||
| multiple missing formatting arguments
|
||||
|
||||
error: argument never used
|
||||
--> $DIR/ifmt-bad-arg.rs:43:22
|
||||
|
|
||||
LL | format!("{}", 1, 2); //~ ERROR: argument never used
|
||||
| ^
|
||||
|
||||
error: argument never used
|
||||
--> $DIR/ifmt-bad-arg.rs:44:20
|
||||
|
|
||||
LL | format!("{1}", 1, 2); //~ ERROR: argument never used
|
||||
| ^
|
||||
|
||||
error: named argument never used
|
||||
--> $DIR/ifmt-bad-arg.rs:45:26
|
||||
|
|
||||
LL | format!("{}", 1, foo=2); //~ ERROR: named argument never used
|
||||
| ^
|
||||
|
||||
error: argument never used
|
||||
--> $DIR/ifmt-bad-arg.rs:46:22
|
||||
|
|
||||
LL | format!("{foo}", 1, foo=2); //~ ERROR: argument never used
|
||||
| ^
|
||||
|
||||
error: named argument never used
|
||||
--> $DIR/ifmt-bad-arg.rs:47:21
|
||||
|
|
||||
LL | format!("", foo=2); //~ ERROR: named argument never used
|
||||
| ^
|
||||
|
||||
error: multiple unused formatting arguments
|
||||
--> $DIR/ifmt-bad-arg.rs:48:32
|
||||
|
|
||||
LL | format!("{} {}", 1, 2, foo=1, bar=2); //~ ERROR: multiple unused formatting arguments
|
||||
| ------- ^ ^
|
||||
| |
|
||||
| multiple missing formatting arguments
|
||||
|
||||
error: duplicate argument named `foo`
|
||||
--> $DIR/ifmt-bad-arg.rs:50:33
|
||||
|
|
||||
LL | format!("{foo}", foo=1, foo=2); //~ ERROR: duplicate argument
|
||||
| ^
|
||||
|
|
||||
note: previously here
|
||||
--> $DIR/ifmt-bad-arg.rs:50:26
|
||||
|
|
||||
LL | format!("{foo}", foo=1, foo=2); //~ ERROR: duplicate argument
|
||||
| ^
|
||||
|
||||
error: expected ident, positional arguments cannot follow named arguments
|
||||
--> $DIR/ifmt-bad-arg.rs:51:24
|
||||
|
|
||||
LL | format!("", foo=1, 2); //~ ERROR: positional arguments cannot follow
|
||||
| ^
|
||||
|
||||
error: there is no argument named `valueb`
|
||||
--> $DIR/ifmt-bad-arg.rs:55:13
|
||||
|
|
||||
LL | format!("{valuea} {valueb}", valuea=5, valuec=7);
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: named argument never used
|
||||
--> $DIR/ifmt-bad-arg.rs:55:51
|
||||
|
|
||||
LL | format!("{valuea} {valueb}", valuea=5, valuec=7);
|
||||
| ^
|
||||
|
||||
error: invalid format string: expected `'}'` but string was terminated
|
||||
--> $DIR/ifmt-bad-arg.rs:61:15
|
||||
|
|
||||
LL | format!("{"); //~ ERROR: expected `'}'` but string was terminated
|
||||
| ^ expected `'}'` in format string
|
||||
|
|
||||
= note: if you intended to print `{`, you can escape it using `{{`
|
||||
|
||||
error: invalid format string: unmatched `}` found
|
||||
--> $DIR/ifmt-bad-arg.rs:63:18
|
||||
|
|
||||
LL | format!("foo } bar"); //~ ERROR: unmatched `}` found
|
||||
| ^ unmatched `}` in format string
|
||||
|
|
||||
= note: if you intended to print `}`, you can escape it using `}}`
|
||||
|
||||
error: invalid format string: unmatched `}` found
|
||||
--> $DIR/ifmt-bad-arg.rs:64:18
|
||||
|
|
||||
LL | format!("foo }"); //~ ERROR: unmatched `}` found
|
||||
| ^ unmatched `}` in format string
|
||||
|
|
||||
= note: if you intended to print `}`, you can escape it using `}}`
|
||||
|
||||
error: argument never used
|
||||
--> $DIR/ifmt-bad-arg.rs:66:27
|
||||
|
|
||||
LL | format!("foo %s baz", "bar"); //~ ERROR: argument never used
|
||||
| ^^^^^
|
||||
|
|
||||
= help: `%s` should be written as `{}`
|
||||
= note: printf formatting not supported; see the documentation for `std::fmt`
|
||||
|
||||
error: aborting due to 26 previous errors
|
||||
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-backtrace-println.rs:24:30
|
||||
--> $DIR/macro-backtrace-println.rs:24:31
|
||||
|
|
||||
LL | ($fmt:expr) => (myprint!(concat!($fmt, "/n"))); //~ ERROR no arguments were given
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
| ^^
|
||||
...
|
||||
LL | myprintln!("{}");
|
||||
| ----------------- in this macro invocation
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue