error: 1 positional argument in format string, but no arguments were given
  --> $DIR/ifmt-bad-arg.rs:6:14
   |
LL |     format!("{}");
   |              ^^

error: invalid reference to positional argument 1 (there is 1 argument)
  --> $DIR/ifmt-bad-arg.rs:9:15
   |
LL |     format!("{1}", 1);
   |               ^
   |
   = note: positional arguments are zero-based

error: argument never used
  --> $DIR/ifmt-bad-arg.rs:9:20
   |
LL |     format!("{1}", 1);
   |             -----  ^ argument never used
   |             |
   |             formatting specifier missing

error: 2 positional arguments in format string, but no arguments were given
  --> $DIR/ifmt-bad-arg.rs:13:14
   |
LL |     format!("{} {}");
   |              ^^ ^^

error: invalid reference to positional argument 1 (there is 1 argument)
  --> $DIR/ifmt-bad-arg.rs:16:19
   |
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:19:23
   |
LL |     format!("{0} {1} {2}", 1, 2);
   |                       ^
   |
   = note: positional arguments are zero-based

error: 3 positional arguments in format string, but there are 2 arguments
  --> $DIR/ifmt-bad-arg.rs:22:14
   |
LL |     format!("{} {value} {} {}", 1, value=2);
   |              ^^         ^^ ^^   -        -

error: 6 positional arguments in format string, but there are 3 arguments
  --> $DIR/ifmt-bad-arg.rs:24:29
   |
LL |     format!("{name} {value} {} {} {} {} {} {}", 0, name=1, value=2);
   |                             ^^ ^^ ^^ ^^ ^^ ^^   -       -        -

error: multiple unused formatting arguments
  --> $DIR/ifmt-bad-arg.rs:32:17
   |
LL |     format!("", 1, 2);
   |             --  ^  ^ argument never used
   |             |   |
   |             |   argument never used
   |             multiple missing formatting specifiers

error: argument never used
  --> $DIR/ifmt-bad-arg.rs:33:22
   |
LL |     format!("{}", 1, 2);
   |             ----     ^ argument never used
   |             |
   |             formatting specifier missing

error: argument never used
  --> $DIR/ifmt-bad-arg.rs:34:20
   |
LL |     format!("{1}", 1, 2);
   |             -----  ^ argument never used
   |             |
   |             formatting specifier missing

error: named argument never used
  --> $DIR/ifmt-bad-arg.rs:35:26
   |
LL |     format!("{}", 1, foo=2);
   |             ----         ^ named argument never used
   |             |
   |             formatting specifier missing

error: argument never used
  --> $DIR/ifmt-bad-arg.rs:36:22
   |
LL |     format!("{foo}", 1, foo=2);
   |             -------  ^ argument never used
   |             |
   |             formatting specifier missing

error: named argument never used
  --> $DIR/ifmt-bad-arg.rs:37:21
   |
LL |     format!("", foo=2);
   |             --      ^ named argument never used
   |             |
   |             formatting specifier missing

error: multiple unused formatting arguments
  --> $DIR/ifmt-bad-arg.rs:38:32
   |
LL |     format!("{} {}", 1, 2, foo=1, bar=2);
   |             -------            ^      ^ named argument never used
   |             |                  |
   |             |                  named argument never used
   |             multiple missing formatting specifiers

error: duplicate argument named `foo`
  --> $DIR/ifmt-bad-arg.rs:40:29
   |
LL |     format!("{foo}", foo=1, foo=2);
   |                      ---    ^^^ duplicate argument
   |                      |
   |                      previously here

error: positional arguments cannot follow named arguments
  --> $DIR/ifmt-bad-arg.rs:41:35
   |
LL |     format!("{foo} {} {}", foo=1, 2);
   |                            -----  ^ positional arguments must be before named arguments
   |                            |
   |                            named argument

error: named argument never used
  --> $DIR/ifmt-bad-arg.rs:45:51
   |
LL |     format!("{valuea} {valueb}", valuea=5, valuec=7);
   |             -------------------                   ^ named argument never used
   |             |
   |             formatting specifier missing

error: invalid format string: expected `'}'` but string was terminated
  --> $DIR/ifmt-bad-arg.rs:51:15
   |
LL |     format!("{");
   |              -^ expected `'}'` in format string
   |              |
   |              because of this opening brace
   |
   = note: if you intended to print `{`, you can escape it using `{{`

error: invalid format string: unmatched `}` found
  --> $DIR/ifmt-bad-arg.rs:53:18
   |
LL |     format!("foo } bar");
   |                  ^ 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:54:18
   |
LL |     format!("foo }");
   |                  ^ unmatched `}` in format string
   |
   = note: if you intended to print `}`, you can escape it using `}}`

error: argument never used
  --> $DIR/ifmt-bad-arg.rs:56:27
   |
LL |     format!("foo %s baz", "bar");
   |                  --       ^^^^^ argument never used
   |                  |
   |                  help: format specifiers use curly braces: `{}`
   |
   = note: printf formatting is not supported; see the documentation for `std::fmt`

error: invalid format string: expected `'}'`, found `'t'`
  --> $DIR/ifmt-bad-arg.rs:75:1
   |
LL | ninth number: {
   |               - because of this opening brace
LL | tenth number: {}",
   | ^ expected `}` in format string
   |
   = note: if you intended to print `{`, you can escape it using `{{`

error: 4 positional arguments in format string, but there are 3 arguments
  --> $DIR/ifmt-bad-arg.rs:78:15
   |
LL |     println!("{} {:.*} {}", 1, 3.2, 4);
   |               ^^ ^^--^ ^^   -  ---  -
   |                    |
   |                    this precision flag adds an extra required argument at position 1, which is why there are 4 arguments expected
   |
   = note: positional arguments are zero-based
   = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html

error: invalid reference to positional arguments 3 and 7 (there are 3 arguments)
  --> $DIR/ifmt-bad-arg.rs:81:21
   |
LL |     println!("{} {:07$.*} {}", 1, 3.2, 4);
   |                     ^^     ^
   |
   = note: positional arguments are zero-based
   = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html

error: invalid reference to positional argument 7 (there are 3 arguments)
  --> $DIR/ifmt-bad-arg.rs:84:21
   |
LL |     println!("{} {:07$} {}", 1, 3.2, 4);
   |                     ^^
   |
   = note: positional arguments are zero-based
   = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html

error: unknown format trait `foo`
  --> $DIR/ifmt-bad-arg.rs:86:17
   |
LL |     println!("{:foo}", 1);
   |                 ^^^
   |
   = note: the only appropriate formatting traits are:
           - ``, which uses the `Display` trait
           - `?`, which uses the `Debug` trait
           - `e`, which uses the `LowerExp` trait
           - `E`, which uses the `UpperExp` trait
           - `o`, which uses the `Octal` trait
           - `p`, which uses the `Pointer` trait
           - `b`, which uses the `Binary` trait
           - `x`, which uses the `LowerHex` trait
           - `X`, which uses the `UpperHex` trait

error: invalid reference to positional arguments 4, 5, 6 and 7 (there is 1 argument)
  --> $DIR/ifmt-bad-arg.rs:87:16
   |
LL |     println!("{5} {:4$} {6:7$}", 1);
   |                ^    ^^   ^ ^^
   |
   = note: positional arguments are zero-based
   = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html

error: invalid reference to positional argument 0 (no arguments were given)
  --> $DIR/ifmt-bad-arg.rs:90:20
   |
LL |     println!("{foo:0$}");
   |                    ^^
   |
   = note: positional arguments are zero-based
   = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html

error: 2 positional arguments in format string, but no arguments were given
  --> $DIR/ifmt-bad-arg.rs:95:15
   |
LL |     println!("{:.*}");
   |               ^^--^
   |                 |
   |                 this precision flag adds an extra required argument at position 0, which is why there are 2 arguments expected
   |
   = note: positional arguments are zero-based
   = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html

error: invalid reference to positional argument 0 (no arguments were given)
  --> $DIR/ifmt-bad-arg.rs:97:16
   |
LL |     println!("{:.0$}");
   |                ^^^^
   |
   = note: positional arguments are zero-based
   = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html

error[E0425]: cannot find value `foo` in this scope
  --> $DIR/ifmt-bad-arg.rs:27:18
   |
LL |     format!("{} {foo} {} {bar} {}", 1, 2, 3);
   |                  ^^^ not found in this scope

error[E0425]: cannot find value `bar` in this scope
  --> $DIR/ifmt-bad-arg.rs:27:27
   |
LL |     format!("{} {foo} {} {bar} {}", 1, 2, 3);
   |                           ^^^ not found in this scope

error[E0425]: cannot find value `foo` in this scope
  --> $DIR/ifmt-bad-arg.rs:31:15
   |
LL |     format!("{foo}");
   |               ^^^ not found in this scope

error[E0425]: cannot find value `valueb` in this scope
  --> $DIR/ifmt-bad-arg.rs:45:24
   |
LL |     format!("{valuea} {valueb}", valuea=5, valuec=7);
   |                        ^^^^^^ not found in this scope

error[E0425]: cannot find value `foo` in this scope
  --> $DIR/ifmt-bad-arg.rs:60:10
   |
LL |         {foo}
   |          ^^^ not found in this scope

error[E0308]: mismatched types
  --> $DIR/ifmt-bad-arg.rs:78:32
   |
LL |     println!("{} {:.*} {}", 1, 3.2, 4);
   |                                ^^^
   |                                |
   |                                expected `usize`, found floating-point number
   |                                arguments to this function are incorrect
   |
   = note: expected reference `&usize`
              found reference `&{float}`
note: associated function defined here
  --> $SRC_DIR/core/src/fmt/mod.rs:LL:COL
   = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
  --> $DIR/ifmt-bad-arg.rs:81:35
   |
LL |     println!("{} {:07$.*} {}", 1, 3.2, 4);
   |                                   ^^^
   |                                   |
   |                                   expected `usize`, found floating-point number
   |                                   arguments to this function are incorrect
   |
   = note: expected reference `&usize`
              found reference `&{float}`
note: associated function defined here
  --> $SRC_DIR/core/src/fmt/mod.rs:LL:COL
   = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to 38 previous errors

Some errors have detailed explanations: E0308, E0425.
For more information about an error, try `rustc --explain E0308`.
