#![warn(clippy::println_empty_string)]
#![expect(clippy::match_single_binding, clippy::nonstandard_macro_braces)]

fn main() {
    println!();
    println!("");
    //~^ println_empty_string

    match "a" {
        _ => println!(""),
        //~^ println_empty_string
    }

    eprintln!();
    eprintln!("");
    //~^ println_empty_string

    match "a" {
        _ => eprintln!(""),
        //~^ println_empty_string
    }
}

#[rustfmt::skip]
fn issue_16167() {
    //~v println_empty_string
    println!(
        "\
            \
            "
            ,
    );

    match "a" {
        _ => println!("" ,), // there is a space between "" and comma
        //~^ println_empty_string
    }

    eprintln!(""	,); // there is a tab between "" and comma
    //~^ println_empty_string

    match "a" {
        _ => eprintln!(""	 ,), // tab and space between "" and comma
        //~^ println_empty_string
    }
}

#[rustfmt::skip]
fn issue_16843() {
    println!{""};
    //~^ println_empty_string

    println![""];
    //~^ println_empty_string

    eprintln!{""};
    //~^ println_empty_string

    eprintln![""];
    //~^ println_empty_string

    match "a" {
        _ => println!{""},
        //~^ println_empty_string
    }

    match "a" {
        _ => println![""],
        //~^ println_empty_string
    }
}
