| // Test or-patterns with box-patterns |
| #![feature(box_patterns)] |
| #[derive(Debug, PartialEq)] |
| fn test(x: Option<Box<Test>>) -> MatchArm { |
| Some(box Test::Foo | box Test::Bar) => MatchArm::Arm(0), |
| Some(box Test::Baz) => MatchArm::Arm(1), |
| Some(_) => MatchArm::Arm(2), |
| assert_eq!(test(Some(Box::new(Test::Foo))), MatchArm::Arm(0)); |
| assert_eq!(test(Some(Box::new(Test::Bar))), MatchArm::Arm(0)); |
| assert_eq!(test(Some(Box::new(Test::Baz))), MatchArm::Arm(1)); |
| assert_eq!(test(Some(Box::new(Test::Qux))), MatchArm::Arm(2)); |
| assert_eq!(test(None), MatchArm::Wild); |