//@ check-pass | |
#![deny(unreachable_patterns)] | |
pub enum TypeCtor { | |
Slice, | |
Array, | |
} | |
pub struct ApplicationTy(TypeCtor); | |
macro_rules! ty_app { | |
($ctor:pat) => { | |
ApplicationTy($ctor) | |
}; | |
} | |
fn _foo(ty: ApplicationTy) { | |
match ty { | |
ty_app!(TypeCtor::Array) | ty_app!(TypeCtor::Slice) => {} | |
} | |
// same as above, with the macro expanded | |
match ty { | |
ApplicationTy(TypeCtor::Array) | ApplicationTy(TypeCtor::Slice) => {} | |
} | |
} | |
fn main() {} |