]> git.lizzy.rs Git - rust.git/blob - src/test/ui/pattern/usefulness/integer-ranges/pointer-sized-int-allow.rs
Rollup merge of #80298 - PankajChaudhary5:PankajChaudhary, r=GuillaumeGomez
[rust.git] / src / test / ui / pattern / usefulness / integer-ranges / pointer-sized-int-allow.rs
1 #![feature(precise_pointer_size_matching)]
2 #![feature(exclusive_range_pattern)]
3
4 macro_rules! m {
5     ($s:expr, $($t:tt)+) => {
6         match $s { $($t)+ => {} }
7     }
8 }
9
10 fn main() {
11     match 0usize {
12         0 ..= usize::MAX => {}
13     }
14
15     match 0isize {
16         isize::MIN ..= isize::MAX => {}
17     }
18
19     m!(0usize, 0..=usize::MAX);
20     m!(0usize, 0..5 | 5..=usize::MAX);
21     m!(0usize, 0..usize::MAX | usize::MAX);
22     m!((0usize, true), (0..5, true) | (5..=usize::MAX, true) | (0..=usize::MAX, false));
23
24     m!(0isize, isize::MIN..=isize::MAX);
25     m!(0isize, isize::MIN..5 | 5..=isize::MAX);
26     m!(0isize, isize::MIN..isize::MAX | isize::MAX);
27     m!((0isize, true), (isize::MIN..5, true)
28         | (5..=isize::MAX, true) | (isize::MIN..=isize::MAX, false));
29
30     match 0isize {
31         isize::MIN ..= -1 => {}
32         0 => {}
33         1 ..= isize::MAX => {}
34     }
35
36     match 7usize {}
37     //~^ ERROR non-exhaustive patterns
38 }