mirror of https://github.com/rust-lang/rust
68 lines
2.0 KiB
Rust
68 lines
2.0 KiB
Rust
struct A<T> {
|
|
a: T,
|
|
}
|
|
|
|
struct B<T, U>(T, U);
|
|
|
|
fn main() {
|
|
match 0 {
|
|
//~^ ERROR non-exhaustive patterns: `usize::MAX..` not covered [E0004]
|
|
0 => (),
|
|
1..=usize::MAX => (),
|
|
}
|
|
|
|
match (0usize, 0usize) {
|
|
//~^ ERROR non-exhaustive patterns: `(usize::MAX.., _)` not covered [E0004]
|
|
(0, 0) => (),
|
|
(1..=usize::MAX, 1..=usize::MAX) => (),
|
|
}
|
|
|
|
match (0isize, 0usize) {
|
|
//~^ ERROR non-exhaustive patterns: `(..isize::MIN, _)` and `(isize::MAX.., _)` not covered [E0004]
|
|
(isize::MIN..=isize::MAX, 0) => (),
|
|
(isize::MIN..=isize::MAX, 1..=usize::MAX) => (),
|
|
}
|
|
|
|
// Should not report note about usize not having fixed max value
|
|
match Some(1usize) {
|
|
//~^ ERROR non-exhaustive patterns: `Some(_)` not covered
|
|
None => {}
|
|
}
|
|
|
|
match Some(4) {
|
|
//~^ ERROR non-exhaustive patterns: `Some(usize::MAX..)` not covered
|
|
Some(0) => (),
|
|
Some(1..=usize::MAX) => (),
|
|
None => (),
|
|
}
|
|
|
|
match Some(Some(Some(0))) {
|
|
//~^ ERROR non-exhaustive patterns: `Some(Some(Some(usize::MAX..)))` not covered
|
|
Some(Some(Some(0))) => (),
|
|
Some(Some(Some(1..=usize::MAX))) => (),
|
|
Some(Some(None)) => (),
|
|
Some(None) => (),
|
|
None => (),
|
|
}
|
|
|
|
match (A { a: 0usize }) {
|
|
//~^ ERROR non-exhaustive patterns: `A { a: usize::MAX.. }` not covered [E0004]
|
|
A { a: 0 } => (),
|
|
A { a: 1..=usize::MAX } => (),
|
|
}
|
|
|
|
match B(0isize, 0usize) {
|
|
//~^ ERROR non-exhaustive patterns: `B(..isize::MIN, _)` and `B(isize::MAX.., _)` not covered [E0004]
|
|
B(isize::MIN..=isize::MAX, 0) => (),
|
|
B(isize::MIN..=isize::MAX, 1..=usize::MAX) => (),
|
|
}
|
|
|
|
// Should report only the note about usize not having fixed max value and not report
|
|
// report the note about isize
|
|
match B(0isize, 0usize) {
|
|
//~^ ERROR non-exhaustive patterns: `B(_, usize::MAX..)` not covered [E0004]
|
|
B(_, 0) => (),
|
|
B(_, 1..=usize::MAX) => (),
|
|
}
|
|
}
|