```rust fn main() { let x = match 1i8 { -0x80..=-1 => -99, 0..=10 => 0, _ => 99, }; println!("{}", x); } ``` This prints `-99` instead of `0`. Changing the first pattern to `-0x80 | -0x7f..=-1 => -99,` will work around the issue. Changing it to `-0x80..=-0x7f | -0x7e..=-1` reintroduces the issue.