// check-pass
// run-rustfix

fn main() {
    let mut _x: usize;
    _x = 1;
    println!("_x is {_x}", _x = 5);
    //~^ WARNING named argument `_x` is not used by name [named_arguments_used_positionally]
    //~| HELP use the named argument by name to avoid ambiguity
    println!("_x is {y}", y = _x);
    //~^ WARNING named argument `y` is not used by name [named_arguments_used_positionally]
    //~| HELP use the named argument by name to avoid ambiguity
    println!("first positional arg {}, second positional arg {}, _x is {y}", 1, 2, y = _x);
    //~^ WARNING named argument `y` is not used by name [named_arguments_used_positionally]
    //~| HELP use the named argument by name to avoid ambiguity

    let mut _x: usize;
    _x = 1;
    let _f = format!("_x is {_x}", _x = 5);
    //~^ WARNING named argument `_x` is not used by name [named_arguments_used_positionally]
    //~| HELP use the named argument by name to avoid ambiguity
    let _f = format!("_x is {y}", y = _x);
    //~^ WARNING named argument `y` is not used by name [named_arguments_used_positionally]
    //~| HELP use the named argument by name to avoid ambiguity
    let _f = format!("first positional arg {}, second positional arg {}, _x is {y}", 1, 2, y = _x);
    //~^ WARNING named argument `y` is not used by name [named_arguments_used_positionally]
    //~| HELP use the named argument by name to avoid ambiguity

    let s = "0.009";
    // Confirm that named arguments used in formatting are correctly considered.
    println!(".{:0<width$}", s, width = _x);

    let region = "abc";
    let width = 8;
    let ls = "abcde";
    let full = "abcde";
    // Confirm that named arguments used in formatting are correctly considered.
    println!(
        "| {r:rw$?} | {ui:4?} | {v}",
        r = region,
        rw = width,
        ui = ls,
        v = full,
    );

    // Confirm that named arguments used in formatting are correctly considered.
    println!("{:.a$}", "aaaaaaaaaaaaaaaaaa", a = 4);

    // Confirm that named arguments used in formatting are correctly considered.
    println!("{:._a$}", "aaaaaaaaaaaaaaaaaa", _a = 4);
}