match 0i128 {
i128::MIN ..= i128::MAX => {} // ok
}
+
+ // Make sure that guards don't factor into the exhaustiveness checks.
+ match 0u8 { //~ ERROR non-exhaustive patterns
+ 0 .. 128 => {}
+ 128 ..= 255 if true => {}
+ }
+
+ match 0u8 {
+ 0 .. 128 => {}
+ 128 ..= 255 if false => {}
+ 128 ..= 255 => {} // ok, because previous arm was guarded
+ }
}
LL | match 0i16 { //~ ERROR non-exhaustive patterns
| ^^^^ pattern `0i16` not covered
-error: aborting due to 7 previous errors
+error[E0004]: non-exhaustive patterns: `128u8..=255u8` not covered
+ --> $DIR/exhaustive_integer_patterns.rs:125:11
+ |
+LL | match 0u8 { //~ ERROR non-exhaustive patterns
+ | ^^^ pattern `128u8..=255u8` not covered
+
+error: aborting due to 8 previous errors
For more information about this error, try `rustc --explain E0004`.