//@ run-pass #![allow(dead_code)] #![allow(non_camel_case_types)] #[derive(Copy, Clone)] enum side { mayo, catsup, vinegar } #[derive(Copy, Clone)] enum order { hamburger, fries(side), shake } #[derive(Copy, Clone)] enum meal { to_go(order), for_here(order) } fn foo(m: Box, cond: bool) { match *m { meal::to_go(_) => { } meal::for_here(_) if cond => {} meal::for_here(order::hamburger) => {} meal::for_here(order::fries(_s)) => {} meal::for_here(order::shake) => {} } } pub fn main() { foo(Box::new(meal::for_here(order::hamburger)), true) }