//@ run-pass #![allow(dead_code)] enum Foo { Bar(isize), Baz, } enum Other { Other1(Foo), Other2(Foo, Foo), } fn main() { match Foo::Baz { crate::Foo::Bar(3) => panic!(), crate::Foo::Bar(_) if false => panic!(), crate::Foo::Bar(..) if false => panic!(), crate::Foo::Bar(_n) => panic!(), crate::Foo::Baz => {} } match Foo::Bar(3) { crate::Foo::Bar(3) => {} crate::Foo::Bar(_) if false => panic!(), crate::Foo::Bar(..) if false => panic!(), crate::Foo::Bar(_n) => panic!(), crate::Foo::Baz => panic!(), } match Foo::Bar(4) { crate::Foo::Bar(3) => panic!(), crate::Foo::Bar(_) if false => panic!(), crate::Foo::Bar(..) if false => panic!(), crate::Foo::Bar(n) => assert_eq!(n, 4), crate::Foo::Baz => panic!(), } match Other::Other1(Foo::Baz) { crate::Other::Other1(crate::Foo::Baz) => {} crate::Other::Other1(crate::Foo::Bar(_)) => {} crate::Other::Other2(crate::Foo::Baz, crate::Foo::Bar(_)) => {} crate::Other::Other2(crate::Foo::Bar(..), crate::Foo::Baz) => {} crate::Other::Other2(..) => {} } }