| //@ revisions: deny | |
| #![allow(overlapping_range_endpoints)] | |
| macro_rules! m { | |
| ($s:expr, $($t:tt)+) => { | |
| match $s { $($t)+ => {} } | |
| } | |
| } | |
| #[rustfmt::skip] | |
| fn main() { | |
| match 0usize { | |
| //~^ ERROR non-exhaustive patterns | |
| 0..=usize::MAX => {} | |
| } | |
| match 0isize { | |
| //~^ ERROR non-exhaustive patterns | |
| isize::MIN..=isize::MAX => {} | |
| } | |
| m!(0usize, 0..=usize::MAX); | |
| //~^ ERROR non-exhaustive patterns | |
| m!(0usize, 0..5 | 5..=usize::MAX); | |
| //~^ ERROR non-exhaustive patterns | |
| m!(0usize, 0..usize::MAX | usize::MAX); | |
| //~^ ERROR non-exhaustive patterns | |
| m!((0usize, true), (0..5, true) | (5..=usize::MAX, true) | (0..=usize::MAX, false)); | |
| //~^ ERROR non-exhaustive patterns | |
| m!(0usize, 0..); | |
| m!(0usize, 0..5 | 5..); | |
| m!(0usize, ..5 | 5..); | |
| m!((0usize, true), (0..5, true) | (5.., true) | (0.., false)); | |
| m!(0usize, 0..=usize::MAX | usize::MAX..); | |
| m!(0isize, isize::MIN..=isize::MAX); | |
| //~^ ERROR non-exhaustive patterns | |
| m!(0isize, isize::MIN..5 | 5..=isize::MAX); | |
| //~^ ERROR non-exhaustive patterns | |
| m!(0isize, isize::MIN..=-1 | 0 | 1..=isize::MAX); | |
| //~^ ERROR non-exhaustive patterns | |
| m!(0isize, isize::MIN..isize::MAX | isize::MAX); | |
| //~^ ERROR non-exhaustive patterns | |
| m!( | |
| (0isize, true), | |
| (isize::MIN..5, true) | (5..=isize::MAX, true) | (isize::MIN..=isize::MAX, false) | |
| ); | |
| //~^^^ ERROR non-exhaustive patterns | |
| m!(0isize, ..0 | 0..); | |
| m!(0isize, ..5 | 5..); | |
| m!((0isize, true), (..5, true) | |
| | (5.., true) | (..0 | 0.., false)); | |
| m!(0isize, ..=isize::MIN | isize::MIN..=isize::MAX | isize::MAX..); | |
| match 7usize {} | |
| //~^ ERROR non-exhaustive patterns | |
| } |