// Issue #51976
//@ run-rustfix
#![allow(unused_variables)] // allowed so we don't get overlapping suggestions
enum Lol {
    Foo,
    Bar,
}

fn foo(x: (Lol, Lol)) {
    use Lol::*;
    match &x {
        (Foo, Bar) | (Bar, Foo) => {}
        //~^ ERROR: variable `Ban` is not bound in all patterns
        //~| HELP: you might have meant to use the similarly named previously used binding `Bar`
        //~| NOTE: pattern doesn't bind `Ban`
        //~| NOTE: variable not in all patterns
        _ => {}
    }
    match &x {
        (Foo, _) | (Bar, Foo) => {}
        //~^ ERROR: variable `Ban` is not bound in all patterns
        //~| HELP: you might have meant to use the similarly named unit variant `Bar`
        //~| NOTE: pattern doesn't bind `Ban`
        //~| NOTE: variable not in all patterns
        _ => {}
    }
}

fn main() {
    use Lol::*;
    foo((Foo, Bar));
}
