| //! Regression test for https://github.com/rust-lang/rust/issues/15793 | |
| //@ run-pass | |
| #![allow(dead_code)] | |
| enum NestedEnum { | |
| First, | |
| Second, | |
| Third | |
| } | |
| enum Enum { | |
| Variant1(bool), | |
| Variant2(NestedEnum) | |
| } | |
| #[inline(never)] | |
| fn foo(x: Enum) -> isize { | |
| match x { | |
| Enum::Variant1(true) => 1, | |
| Enum::Variant1(false) => 2, | |
| Enum::Variant2(NestedEnum::Second) => 3, | |
| Enum::Variant2(NestedEnum::Third) => 4, | |
| Enum::Variant2(NestedEnum::First) => 5 | |
| } | |
| } | |
| fn main() { | |
| assert_eq!(foo(Enum::Variant2(NestedEnum::Third)), 4); | |
| } |