// run-rustfix

#![allow(warnings)]

// This tests that the `help: consider dereferencing the boxed value` suggestion is made and works.

enum S {
    A { a: usize },
    B { b: usize },
}

enum T {
    A(usize),
    B(usize),
}

fn main() {
    let x = Box::new(T::A(3));
    let y = match *x {
        T::A(a) | T::B(a) => a,
        //~^ ERROR mismatched types [E0308]
        //~^^ ERROR mismatched types [E0308]
    };

    let x = Box::new(S::A { a: 3 });
    let y = match *x {
        S::A { a } | S::B { b: a } => a,
        //~^ ERROR mismatched types [E0308]
        //~^^ ERROR mismatched types [E0308]
    };
}
