#![deny(unreachable_patterns)] fn main() { let s = &[0x00; 4][..]; //Slice of any value const MAGIC_TEST: &[u8] = b"TEST"; //Const slice to pattern match with match s { MAGIC_TEST => (), [0x00, 0x00, 0x00, 0x00] => (), [84, 69, 83, 84] => (), //~ ERROR unreachable pattern _ => (), } match s { [0x00, 0x00, 0x00, 0x00] => (), MAGIC_TEST => (), [84, 69, 83, 84] => (), //~ ERROR unreachable pattern _ => (), } match s { [0x00, 0x00, 0x00, 0x00] => (), [84, 69, 83, 84] => (), MAGIC_TEST => (), //~ ERROR unreachable pattern _ => (), } const FOO: [u8; 1] = [4]; match [99] { [0x00] => (), [4] => (), FOO => (), //~ ERROR unreachable pattern _ => (), } const BAR: &[u8; 1] = &[4]; match &[99] { [0x00] => (), [4] => (), BAR => (), //~ ERROR unreachable pattern b"a" => (), _ => (), } const BOO: &[u8; 0] = &[]; match &[] { [] => (), BOO => (), //~ ERROR unreachable pattern b"" => (), //~ ERROR unreachable pattern _ => (), //~ ERROR unreachable pattern } const CONST1: &[bool; 1] = &[true]; match &[false] { CONST1 => {} [true] => {} //~ ERROR unreachable pattern [false] => {} } }