warning: named argument `a` is not used by name
  --> $DIR/issue-99265.rs:5:24
   |
LL |     println!("{b} {}", a=1, b=2);
   |                   --   ^ this named argument is referred to by position in formatting string
   |                   |
   |                   this formatting argument uses named argument `a` by position
   |
   = note: `#[warn(named_arguments_used_positionally)]` on by default
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{b} {a}", a=1, b=2);
   |                    +

warning: named argument `a` is not used by name
  --> $DIR/issue-99265.rs:9:35
   |
LL |     println!("{} {} {} {} {}", 0, a=1, b=2, c=3, d=4);
   |                  --               ^ this named argument is referred to by position in formatting string
   |                  |
   |                  this formatting argument uses named argument `a` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{} {a} {} {} {}", 0, a=1, b=2, c=3, d=4);
   |                   +

warning: named argument `b` is not used by name
  --> $DIR/issue-99265.rs:9:40
   |
LL |     println!("{} {} {} {} {}", 0, a=1, b=2, c=3, d=4);
   |                     --                 ^ this named argument is referred to by position in formatting string
   |                     |
   |                     this formatting argument uses named argument `b` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{} {} {b} {} {}", 0, a=1, b=2, c=3, d=4);
   |                      +

warning: named argument `c` is not used by name
  --> $DIR/issue-99265.rs:9:45
   |
LL |     println!("{} {} {} {} {}", 0, a=1, b=2, c=3, d=4);
   |                        --                   ^ this named argument is referred to by position in formatting string
   |                        |
   |                        this formatting argument uses named argument `c` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{} {} {} {c} {}", 0, a=1, b=2, c=3, d=4);
   |                         +

warning: named argument `d` is not used by name
  --> $DIR/issue-99265.rs:9:50
   |
LL |     println!("{} {} {} {} {}", 0, a=1, b=2, c=3, d=4);
   |                           --                     ^ this named argument is referred to by position in formatting string
   |                           |
   |                           this formatting argument uses named argument `d` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{} {} {} {} {d}", 0, a=1, b=2, c=3, d=4);
   |                            +

warning: named argument `width` is not used by name
  --> $DIR/issue-99265.rs:19:35
   |
LL |     println!("Hello {:1$}!", "x", width = 5);
   |                       --          ^^^^^ this named argument is referred to by position in formatting string
   |                       |
   |                       this formatting argument uses named argument `width` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("Hello {:width$}!", "x", width = 5);
   |                       ~~~~~~

warning: named argument `f` is not used by name
  --> $DIR/issue-99265.rs:23:33
   |
LL |     println!("Hello {:1$.2$}!", f = 0.02f32, width = 5, precision = 2);
   |                     --------    ^ this named argument is referred to by position in formatting string
   |                     |
   |                     this formatting argument uses named argument `f` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("Hello {f:1$.2$}!", f = 0.02f32, width = 5, precision = 2);
   |                      +

warning: named argument `precision` is not used by name
  --> $DIR/issue-99265.rs:23:57
   |
LL |     println!("Hello {:1$.2$}!", f = 0.02f32, width = 5, precision = 2);
   |                          --                             ^^^^^^^^^ this named argument is referred to by position in formatting string
   |                          |
   |                          this formatting argument uses named argument `precision` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("Hello {:1$.precision$}!", f = 0.02f32, width = 5, precision = 2);
   |                          ~~~~~~~~~~

warning: named argument `width` is not used by name
  --> $DIR/issue-99265.rs:23:46
   |
LL |     println!("Hello {:1$.2$}!", f = 0.02f32, width = 5, precision = 2);
   |                       --                     ^^^^^ this named argument is referred to by position in formatting string
   |                       |
   |                       this formatting argument uses named argument `width` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("Hello {:width$.2$}!", f = 0.02f32, width = 5, precision = 2);
   |                       ~~~~~~

warning: named argument `f` is not used by name
  --> $DIR/issue-99265.rs:31:34
   |
LL |     println!("Hello {0:1$.2$}!", f = 0.02f32, width = 5, precision = 2);
   |                     ---------    ^ this named argument is referred to by position in formatting string
   |                     |
   |                     this formatting argument uses named argument `f` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("Hello {f:1$.2$}!", f = 0.02f32, width = 5, precision = 2);
   |                      ~

warning: named argument `precision` is not used by name
  --> $DIR/issue-99265.rs:31:58
   |
LL |     println!("Hello {0:1$.2$}!", f = 0.02f32, width = 5, precision = 2);
   |                           --                             ^^^^^^^^^ this named argument is referred to by position in formatting string
   |                           |
   |                           this formatting argument uses named argument `precision` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("Hello {0:1$.precision$}!", f = 0.02f32, width = 5, precision = 2);
   |                           ~~~~~~~~~~

warning: named argument `width` is not used by name
  --> $DIR/issue-99265.rs:31:47
   |
LL |     println!("Hello {0:1$.2$}!", f = 0.02f32, width = 5, precision = 2);
   |                        --                     ^^^^^ this named argument is referred to by position in formatting string
   |                        |
   |                        this formatting argument uses named argument `width` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("Hello {0:width$.2$}!", f = 0.02f32, width = 5, precision = 2);
   |                        ~~~~~~

warning: named argument `f` is not used by name
  --> $DIR/issue-99265.rs:49:9
   |
LL |         "{}, Hello {1:2$.3$} {4:5$.6$}! {1}",
   |                    --------- this formatting argument uses named argument `f` by position
...
LL |         f = 0.02f32,
   |         ^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |         "{}, Hello {f:2$.3$} {4:5$.6$}! {1}",
   |                     ~

warning: named argument `precision` is not used by name
  --> $DIR/issue-99265.rs:54:9
   |
LL |         "{}, Hello {1:2$.3$} {4:5$.6$}! {1}",
   |                          -- this formatting argument uses named argument `precision` by position
...
LL |         precision = 2,
   |         ^^^^^^^^^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |         "{}, Hello {1:2$.precision$} {4:5$.6$}! {1}",
   |                          ~~~~~~~~~~

warning: named argument `width` is not used by name
  --> $DIR/issue-99265.rs:52:9
   |
LL |         "{}, Hello {1:2$.3$} {4:5$.6$}! {1}",
   |                       -- this formatting argument uses named argument `width` by position
...
LL |         width = 5,
   |         ^^^^^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |         "{}, Hello {1:width$.3$} {4:5$.6$}! {1}",
   |                       ~~~~~~

warning: named argument `g` is not used by name
  --> $DIR/issue-99265.rs:56:9
   |
LL |         "{}, Hello {1:2$.3$} {4:5$.6$}! {1}",
   |                              --------- this formatting argument uses named argument `g` by position
...
LL |         g = 0.02f32,
   |         ^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |         "{}, Hello {1:2$.3$} {g:5$.6$}! {1}",
   |                               ~

warning: named argument `precision2` is not used by name
  --> $DIR/issue-99265.rs:60:9
   |
LL |         "{}, Hello {1:2$.3$} {4:5$.6$}! {1}",
   |                                    -- this formatting argument uses named argument `precision2` by position
...
LL |         precision2 = 2
   |         ^^^^^^^^^^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |         "{}, Hello {1:2$.3$} {4:5$.precision2$}! {1}",
   |                                    ~~~~~~~~~~~

warning: named argument `width2` is not used by name
  --> $DIR/issue-99265.rs:58:9
   |
LL |         "{}, Hello {1:2$.3$} {4:5$.6$}! {1}",
   |                                 -- this formatting argument uses named argument `width2` by position
...
LL |         width2 = 5,
   |         ^^^^^^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |         "{}, Hello {1:2$.3$} {4:width2$.6$}! {1}",
   |                                 ~~~~~~~

warning: named argument `f` is not used by name
  --> $DIR/issue-99265.rs:49:9
   |
LL |         "{}, Hello {1:2$.3$} {4:5$.6$}! {1}",
   |                                         --- this formatting argument uses named argument `f` by position
...
LL |         f = 0.02f32,
   |         ^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |         "{}, Hello {1:2$.3$} {4:5$.6$}! {f}",
   |                                          ~

warning: named argument `f` is not used by name
  --> $DIR/issue-99265.rs:64:31
   |
LL |     println!("Hello {:0.1}!", f = 0.02f32);
   |                     ------    ^ this named argument is referred to by position in formatting string
   |                     |
   |                     this formatting argument uses named argument `f` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("Hello {f:0.1}!", f = 0.02f32);
   |                      +

warning: named argument `f` is not used by name
  --> $DIR/issue-99265.rs:68:32
   |
LL |     println!("Hello {0:0.1}!", f = 0.02f32);
   |                     -------    ^ this named argument is referred to by position in formatting string
   |                     |
   |                     this formatting argument uses named argument `f` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("Hello {f:0.1}!", f = 0.02f32);
   |                      ~

warning: named argument `v` is not used by name
  --> $DIR/issue-99265.rs:79:23
   |
LL |     println!("{:0$}", v = val);
   |               -----   ^ this named argument is referred to by position in formatting string
   |               |
   |               this formatting argument uses named argument `v` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{v:0$}", v = val);
   |                +

warning: named argument `v` is not used by name
  --> $DIR/issue-99265.rs:79:23
   |
LL |     println!("{:0$}", v = val);
   |                 --    ^ this named argument is referred to by position in formatting string
   |                 |
   |                 this formatting argument uses named argument `v` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{:v$}", v = val);
   |                 ~~

warning: named argument `v` is not used by name
  --> $DIR/issue-99265.rs:84:24
   |
LL |     println!("{0:0$}", v = val);
   |               ------   ^ this named argument is referred to by position in formatting string
   |               |
   |               this formatting argument uses named argument `v` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{v:0$}", v = val);
   |                ~

warning: named argument `v` is not used by name
  --> $DIR/issue-99265.rs:84:24
   |
LL |     println!("{0:0$}", v = val);
   |                  --    ^ this named argument is referred to by position in formatting string
   |                  |
   |                  this formatting argument uses named argument `v` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{0:v$}", v = val);
   |                  ~~

warning: named argument `v` is not used by name
  --> $DIR/issue-99265.rs:89:26
   |
LL |     println!("{:0$.0$}", v = val);
   |               --------   ^ this named argument is referred to by position in formatting string
   |               |
   |               this formatting argument uses named argument `v` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{v:0$.0$}", v = val);
   |                +

warning: named argument `v` is not used by name
  --> $DIR/issue-99265.rs:89:26
   |
LL |     println!("{:0$.0$}", v = val);
   |                    --    ^ this named argument is referred to by position in formatting string
   |                    |
   |                    this formatting argument uses named argument `v` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{:0$.v$}", v = val);
   |                    ~~

warning: named argument `v` is not used by name
  --> $DIR/issue-99265.rs:89:26
   |
LL |     println!("{:0$.0$}", v = val);
   |                 --       ^ this named argument is referred to by position in formatting string
   |                 |
   |                 this formatting argument uses named argument `v` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{:v$.0$}", v = val);
   |                 ~~

warning: named argument `v` is not used by name
  --> $DIR/issue-99265.rs:96:27
   |
LL |     println!("{0:0$.0$}", v = val);
   |               ---------   ^ this named argument is referred to by position in formatting string
   |               |
   |               this formatting argument uses named argument `v` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{v:0$.0$}", v = val);
   |                ~

warning: named argument `v` is not used by name
  --> $DIR/issue-99265.rs:96:27
   |
LL |     println!("{0:0$.0$}", v = val);
   |                     --    ^ this named argument is referred to by position in formatting string
   |                     |
   |                     this formatting argument uses named argument `v` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{0:0$.v$}", v = val);
   |                     ~~

warning: named argument `v` is not used by name
  --> $DIR/issue-99265.rs:96:27
   |
LL |     println!("{0:0$.0$}", v = val);
   |                  --       ^ this named argument is referred to by position in formatting string
   |                  |
   |                  this formatting argument uses named argument `v` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{0:v$.0$}", v = val);
   |                  ~~

warning: named argument `a` is not used by name
  --> $DIR/issue-99265.rs:104:28
   |
LL |     println!("{} {a} {0}", a = 1);
   |               --           ^ this named argument is referred to by position in formatting string
   |               |
   |               this formatting argument uses named argument `a` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{a} {a} {0}", a = 1);
   |                +

warning: named argument `a` is not used by name
  --> $DIR/issue-99265.rs:104:28
   |
LL |     println!("{} {a} {0}", a = 1);
   |                      ---   ^ this named argument is referred to by position in formatting string
   |                      |
   |                      this formatting argument uses named argument `a` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{} {a} {a}", a = 1);
   |                       ~

warning: named argument `a` is not used by name
  --> $DIR/issue-99265.rs:115:14
   |
LL |                 {:1$.2$}",
   |                 -------- this formatting argument uses named argument `a` by position
...
LL |              a = 1.0, b = 1, c = 2,
   |              ^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |                 {a:1$.2$}",
   |                  +

warning: named argument `c` is not used by name
  --> $DIR/issue-99265.rs:115:30
   |
LL |                 {:1$.2$}",
   |                      -- this formatting argument uses named argument `c` by position
...
LL |              a = 1.0, b = 1, c = 2,
   |                              ^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |                 {:1$.c$}",
   |                      ~~

warning: named argument `b` is not used by name
  --> $DIR/issue-99265.rs:115:23
   |
LL |                 {:1$.2$}",
   |                   -- this formatting argument uses named argument `b` by position
...
LL |              a = 1.0, b = 1, c = 2,
   |                       ^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |                 {:b$.2$}",
   |                   ~~

warning: named argument `a` is not used by name
  --> $DIR/issue-99265.rs:126:14
   |
LL |                 {0:1$.2$}",
   |                 --------- this formatting argument uses named argument `a` by position
...
LL |              a = 1.0, b = 1, c = 2,
   |              ^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |                 {a:1$.2$}",
   |                  ~

warning: named argument `c` is not used by name
  --> $DIR/issue-99265.rs:126:30
   |
LL |                 {0:1$.2$}",
   |                       -- this formatting argument uses named argument `c` by position
...
LL |              a = 1.0, b = 1, c = 2,
   |                              ^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |                 {0:1$.c$}",
   |                       ~~

warning: named argument `b` is not used by name
  --> $DIR/issue-99265.rs:126:23
   |
LL |                 {0:1$.2$}",
   |                    -- this formatting argument uses named argument `b` by position
...
LL |              a = 1.0, b = 1, c = 2,
   |                       ^ this named argument is referred to by position in formatting string
   |
help: use the named argument by name to avoid ambiguity
   |
LL |                 {0:b$.2$}",
   |                    ~~

warning: named argument `x` is not used by name
  --> $DIR/issue-99265.rs:132:30
   |
LL |     println!("{{{:1$.2$}}}", x = 1.0, width = 3, precision = 2);
   |                 --------     ^ this named argument is referred to by position in formatting string
   |                 |
   |                 this formatting argument uses named argument `x` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{{{x:1$.2$}}}", x = 1.0, width = 3, precision = 2);
   |                  +

warning: named argument `precision` is not used by name
  --> $DIR/issue-99265.rs:132:50
   |
LL |     println!("{{{:1$.2$}}}", x = 1.0, width = 3, precision = 2);
   |                      --                          ^^^^^^^^^ this named argument is referred to by position in formatting string
   |                      |
   |                      this formatting argument uses named argument `precision` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{{{:1$.precision$}}}", x = 1.0, width = 3, precision = 2);
   |                      ~~~~~~~~~~

warning: named argument `width` is not used by name
  --> $DIR/issue-99265.rs:132:39
   |
LL |     println!("{{{:1$.2$}}}", x = 1.0, width = 3, precision = 2);
   |                   --                  ^^^^^ this named argument is referred to by position in formatting string
   |                   |
   |                   this formatting argument uses named argument `width` by position
   |
help: use the named argument by name to avoid ambiguity
   |
LL |     println!("{{{:width$.2$}}}", x = 1.0, width = 3, precision = 2);
   |                   ~~~~~~

warning: 42 warnings emitted

