1 #![allow(illegal_floating_point_literal_pattern)]
7 match x { T::B => { } } //~ ERROR non-exhaustive patterns: `A` not covered
8 match true { //~ ERROR non-exhaustive patterns: `false` not covered
11 match Some(10) { //~ ERROR non-exhaustive patterns: `Some(_)` not covered
14 match (2, 3, 4) { //~ ERROR non-exhaustive patterns: `(_, _, i32::MIN..=3_i32)`
15 // and `(_, _, 5_i32..=i32::MAX)` not covered
18 match (T::A, T::A) { //~ ERROR non-exhaustive patterns: `(A, A)` not covered
22 match T::A { //~ ERROR non-exhaustive patterns: `B` not covered
25 // This is exhaustive, though the algorithm got it wrong at one point
31 let vec = vec![Some(42), None, Some(21)];
32 let vec: &[Option<isize>] = &vec;
33 match *vec { //~ ERROR non-exhaustive patterns: `[]` not covered
34 [Some(..), None, ref tail @ ..] => {}
35 [Some(..), Some(..), ref tail @ ..] => {}
39 let vec: &[isize] = &vec;
41 [_, ref tail @ ..] => (),
44 let vec = vec![0.5f32];
45 let vec: &[f32] = &vec;
46 match *vec { //~ ERROR non-exhaustive patterns: `[_, _, _, _, ..]` not covered
47 [0.1, 0.2, 0.3] => (),
52 let vec = vec![Some(42), None, Some(21)];
53 let vec: &[Option<isize>] = &vec;
55 [Some(..), None, ref tail @ ..] => {}
56 [Some(..), Some(..), ref tail @ ..] => {}
57 [None, None, ref tail @ ..] => {}
58 [None, Some(..), ref tail @ ..] => {}