rust/src/test/ui/pattern/usefulness/slice-pattern-const.rs

48 lines
1.2 KiB
Rust
Raw Normal View History

2018-12-13 12:54:49 +01:00
#![deny(unreachable_patterns)]
fn main() {
2018-11-26 09:56:39 +01:00
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] => (),
2018-12-13 12:54:49 +01:00
[84, 69, 83, 84] => (), //~ ERROR unreachable pattern
2018-11-29 12:58:25 +01:00
_ => (),
}
match s {
[0x00, 0x00, 0x00, 0x00] => (),
MAGIC_TEST => (),
2018-12-13 12:54:49 +01:00
[84, 69, 83, 84] => (), //~ ERROR unreachable pattern
2018-11-29 12:58:25 +01:00
_ => (),
}
match s {
[0x00, 0x00, 0x00, 0x00] => (),
[84, 69, 83, 84] => (),
2018-12-13 12:54:49 +01:00
MAGIC_TEST => (), //~ ERROR unreachable pattern
2018-11-26 09:56:39 +01:00
_ => (),
}
2018-12-07 19:06:22 +01:00
const FOO: [u8; 1] = [4];
match [99] {
[0x00] => (),
[4] => (),
2018-12-13 12:54:49 +01:00
FOO => (), //~ ERROR unreachable pattern
2018-12-07 19:06:22 +01:00
_ => (),
}
const BAR: &[u8; 1] = &[4];
match &[99] {
[0x00] => (),
[4] => (),
2018-12-13 12:54:49 +01:00
BAR => (), //~ ERROR unreachable pattern
2018-12-07 19:06:22 +01:00
b"a" => (),
_ => (),
}
const BOO: &[u8; 0] = &[];
match &[] {
[] => (),
2018-12-13 12:54:49 +01:00
BOO => (), //~ ERROR unreachable pattern
b"" => (), //~ ERROR unreachable pattern
_ => (), //~ ERROR unreachable pattern
2018-12-07 19:06:22 +01:00
}
}