#![allow(non_camel_case_types)]

enum E { A, B, c }

pub mod m {
    const CONST1: usize = 10;
    pub const Const2: usize = 20;
}

fn main() {
    let y = 1;
    match y {
       a | b => {} //~  ERROR variable `a` is not bound in all patterns
                   //~| ERROR variable `b` is not bound in all patterns
    }

    let x = (E::A, E::B);
    match x {
        (A, B) | (ref B, c) | (c, A) => ()
        //~^ ERROR variable `A` is not bound in all patterns
        //~| ERROR variable `B` is not bound in all patterns
        //~| ERROR variable `B` is bound inconsistently
        //~| ERROR mismatched types
        //~| ERROR variable `c` is not bound in all patterns
        //~| HELP if you meant to match on unit variant `E::A`, use the full path in the pattern
        //~| HELP consider removing `ref`
    }

    let z = (10, 20);
    match z {
        (CONST1, _) | (_, Const2) => ()
        //~^ ERROR variable `CONST1` is not bound in all patterns
        //~| ERROR variable `Const2` is not bound in all patterns
        //~| HELP if you meant to match on constant `m::Const2`, use the full path in the pattern
    }
}
