enum E1 { E2(E2), None, } enum E2 { E3(E3), None, } enum E3 { S(S), None, } struct S { a: i32, b: u64, } fn f1(e: E1) { match e { // { dg-error "non-exhaustive patterns: 'E1::E2.E2::None.' and 'E1::None' not covered" "" { target *-*-* } .-1 } E1::E2(E2::E3(_)) => {} } } fn main() {}