// Regression test for #50356: Compiler panic when using repr(packed)
// associated constant in a match arm

// check-pass
#[derive(Copy, Clone, PartialEq, Eq)]
#[repr(packed)]
pub struct Num(u64);

impl Num {
    pub const ZERO: Self = Num(0);
}

pub fn decrement(a: Num) -> Num {
    match a {
        Num::ZERO => Num::ZERO,
        a => Num(a.0 - 1)
    }
}

fn main() {
}
