diff options
Diffstat (limited to 'src/test/ui/pattern/usefulness/integer-ranges/reachability.rs')
-rw-r--r-- | src/test/ui/pattern/usefulness/integer-ranges/reachability.rs | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/src/test/ui/pattern/usefulness/integer-ranges/reachability.rs b/src/test/ui/pattern/usefulness/integer-ranges/reachability.rs deleted file mode 100644 index fb4d59b05..000000000 --- a/src/test/ui/pattern/usefulness/integer-ranges/reachability.rs +++ /dev/null @@ -1,113 +0,0 @@ -#![feature(exclusive_range_pattern)] -#![allow(overlapping_range_endpoints)] -#![deny(unreachable_patterns)] - -macro_rules! m { - ($s:expr, $t1:pat, $t2:pat) => { - match $s { - $t1 => {} - $t2 => {} - _ => {} - } - } -} - -fn main() { - m!(0u8, 42, 41); - m!(0u8, 42, 42); //~ ERROR unreachable pattern - m!(0u8, 42, 43); - - m!(0u8, 20..=30, 19); - m!(0u8, 20..=30, 20); //~ ERROR unreachable pattern - m!(0u8, 20..=30, 21); //~ ERROR unreachable pattern - m!(0u8, 20..=30, 25); //~ ERROR unreachable pattern - m!(0u8, 20..=30, 29); //~ ERROR unreachable pattern - m!(0u8, 20..=30, 30); //~ ERROR unreachable pattern - m!(0u8, 20..=30, 31); - m!(0u8, 20..30, 19); - m!(0u8, 20..30, 20); //~ ERROR unreachable pattern - m!(0u8, 20..30, 21); //~ ERROR unreachable pattern - m!(0u8, 20..30, 25); //~ ERROR unreachable pattern - m!(0u8, 20..30, 29); //~ ERROR unreachable pattern - m!(0u8, 20..30, 30); - m!(0u8, 20..30, 31); - - m!(0u8, 20..=30, 20..=30); //~ ERROR unreachable pattern - m!(0u8, 20.. 30, 20.. 30); //~ ERROR unreachable pattern - m!(0u8, 20..=30, 20.. 30); //~ ERROR unreachable pattern - m!(0u8, 20..=30, 19..=30); - m!(0u8, 20..=30, 21..=30); //~ ERROR unreachable pattern - m!(0u8, 20..=30, 20..=29); //~ ERROR unreachable pattern - m!(0u8, 20..=30, 20..=31); - m!('a', 'A'..='z', 'a'..='z'); //~ ERROR unreachable pattern - - match 0u8 { - 5 => {}, - 6 => {}, - 7 => {}, - 8 => {}, - 5..=8 => {}, //~ ERROR unreachable pattern - _ => {}, - } - match 0u8 { - 0..10 => {}, - 10..20 => {}, - 5..15 => {}, //~ ERROR unreachable pattern - _ => {}, - } - match 0u8 { - 0..10 => {}, - 10..20 => {}, - 20..30 => {}, - 5..25 => {}, //~ ERROR unreachable pattern - _ => {}, - } - match 0u8 { - 0..10 => {}, - 10 => {}, - 11..=23 => {}, - 19..30 => {}, - 5..25 => {}, //~ ERROR unreachable pattern - _ => {}, - } - match 0usize { - 0..10 => {}, - 10..20 => {}, - 5..15 => {}, //~ ERROR unreachable pattern - _ => {}, - } - // Chars between '\u{D7FF}' and '\u{E000}' are invalid even though ranges that contain them are - // allowed. - match 'a' { - _ => {}, - '\u{D7FF}'..='\u{E000}' => {}, //~ ERROR unreachable pattern - } - match 'a' { - '\u{0}'..='\u{D7FF}' => {}, - '\u{E000}'..='\u{10_FFFF}' => {}, - '\u{D7FF}'..='\u{E000}' => {}, // FIXME should be unreachable - } - - match (0u8, true) { - (0..=255, false) => {} - (0..=255, true) => {} // ok - } - match (true, 0u8) { - (false, 0..=255) => {} - (true, 0..=255) => {} // ok - } - - const FOO: i32 = 42; - const BAR: &i32 = &42; - match &0 { - &42 => {} - &FOO => {} //~ ERROR unreachable pattern - BAR => {} //~ ERROR unreachable pattern - _ => {} - } - // Regression test, see https://github.com/rust-lang/rust/pull/66326#issuecomment-552889933 - match &0 { - BAR => {} // ok - _ => {} - } -} |