//@ run-rustfix

#![allow(unused)]

use Foo::{FooB, FooA};

enum Foo {
    FooA { opt_x: Option<i32>, y: i32 },
    FooB { x: i32, y: i32 }
}

fn main() {
    let f = FooB { x: 3, y: 4 };

    match f {
        FooB { x: a, y: b } => println!("{} {}", a, b),
        //~^ ERROR expected tuple struct or tuple variant, found variant `FooB`
        _ => (),
    }

    match f {
        FooB { x, y } => println!("{} {}", x, y),
        //~^ ERROR expected tuple struct or tuple variant, found variant `FooB`
        _ => (),
    }

    match f {
        FooA { opt_x: Some(x), y } => println!("{} {}", x, y),
        //~^ ERROR expected tuple struct or tuple variant, found variant `FooA`
        _ => (),
    }

    match f {
        FooB { x: a, y: _ } => println!("{}", a),
        //~^ ERROR expected tuple struct or tuple variant, found variant `FooB`
        _ => (),
    }

    match f {
        FooB { x, y } => (),
        //~^ ERROR expected tuple struct or tuple variant, found variant `FooB`
        _ => (),
    }
}
