// Test basic or-patterns when the target pattern type will be lowered to a | |
// `Switch` (an `enum`). | |
//@ run-pass | |
#[derive(Debug)] | |
enum Test { | |
Foo, | |
Bar, | |
Baz, | |
Qux, | |
} | |
fn test(x: Option<Test>) -> bool { | |
match x { | |
// most simple case | |
Some(Test::Bar | Test::Qux) => true, | |
// wild case | |
Some(_) => false, | |
// empty case | |
None => false, | |
} | |
} | |
fn main() { | |
assert!(!test(Some(Test::Foo))); | |
assert!(test(Some(Test::Bar))); | |
assert!(!test(Some(Test::Baz))); | |
assert!(test(Some(Test::Qux))); | |
assert!(!test(None)) | |
} |