enum t { a, b, } fn main() { let x = a; match x { b => { } } //~ ERROR non-exhaustive patterns match true { //~ ERROR non-exhaustive patterns true => {} } match @Some(10) { //~ ERROR non-exhaustive patterns @None => {} } match (2, 3, 4) { //~ ERROR non-exhaustive patterns (_, _, 4) => {} } match (a, a) { //~ ERROR non-exhaustive patterns (a, b) => {} (b, a) => {} } match a { //~ ERROR b not covered a => {} } // This is exhaustive, though the algorithm got it wrong at one point match (a, b) { (a, _) => {} (_, a) => {} (b, b) => {} } }