| enum Enum<T> { SVariant { v: T }, UVariant } | |
| macro_rules! is_variant { | |
| (TSVariant, ) => (!); | |
| (SVariant, ) => (!); | |
| (UVariant, $expr:expr) => (is_variant!(@check UVariant, {}, $expr)); | |
| (@check $variant:ident, $matcher:tt, $expr:expr) => ( | |
| assert!(if let Enum::$variant::<()> $matcher = $expr () { true } else { false }, | |
| ); | |
| ); | |
| } | |
| fn main() { | |
| is_variant!(UVariant, Enum::<()>::UVariant); //~ ERROR expected function | |
| } |