diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-07-02 02:37:52 +0900 |
|---|---|---|
| committer | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-07-05 02:10:57 +0900 |
| commit | dcbe85abad8ddd3a39fcafe70a884db4e71f0b03 (patch) | |
| tree | 3a4ea5b4c65c9b08aa9ecfeed37dd7c0ebdf02b3 /src/test/ui/pattern | |
| parent | 0cd7ff7ddfb75a38dca81ad3e76b1e984129e939 (diff) | |
| download | rust-dcbe85abad8ddd3a39fcafe70a884db4e71f0b03.tar.gz rust-dcbe85abad8ddd3a39fcafe70a884db4e71f0b03.zip | |
Explain exhaustive matching on {usize,isize} maximum values
Diffstat (limited to 'src/test/ui/pattern')
| -rw-r--r-- | src/test/ui/pattern/usefulness/non-exhaustive-pattern-pointer-size-int.rs | 21 | ||||
| -rw-r--r-- | src/test/ui/pattern/usefulness/non-exhaustive-pattern-pointer-size-int.stderr | 25 |
2 files changed, 46 insertions, 0 deletions
diff --git a/src/test/ui/pattern/usefulness/non-exhaustive-pattern-pointer-size-int.rs b/src/test/ui/pattern/usefulness/non-exhaustive-pattern-pointer-size-int.rs new file mode 100644 index 00000000000..aa6a3ffc522 --- /dev/null +++ b/src/test/ui/pattern/usefulness/non-exhaustive-pattern-pointer-size-int.rs @@ -0,0 +1,21 @@ +use std::{usize, isize}; + +fn main() { + match 0usize { + //~^ ERROR non-exhaustive patterns + //~| NOTE pattern `_` not covered + //~| NOTE the matched value is of type `usize` + //~| NOTE for `usize` and `isize`, no assumptions about the maximum value are permitted + //~| NOTE to exhaustively match on either pointer-size integer type, wildcards must be used + 0 ..= usize::MAX => {} + } + + match 0isize { + //~^ ERROR non-exhaustive patterns + //~| NOTE pattern `_` not covered + //~| NOTE the matched value is of type `isize` + //~| NOTE for `usize` and `isize`, no assumptions about the maximum value are permitted + //~| NOTE to exhaustively match on either pointer-size integer type, wildcards must be used + isize::MIN ..= isize::MAX => {} + } +} diff --git a/src/test/ui/pattern/usefulness/non-exhaustive-pattern-pointer-size-int.stderr b/src/test/ui/pattern/usefulness/non-exhaustive-pattern-pointer-size-int.stderr new file mode 100644 index 00000000000..cd47e74fa46 --- /dev/null +++ b/src/test/ui/pattern/usefulness/non-exhaustive-pattern-pointer-size-int.stderr @@ -0,0 +1,25 @@ +error[E0004]: non-exhaustive patterns: `_` not covered + --> $DIR/non-exhaustive-pattern-pointer-size-int.rs:4:11 + | +LL | match 0usize { + | ^^^^^^ pattern `_` not covered + | + = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms + = note: the matched value is of type `usize` + = note: for `usize` and `isize`, no assumptions about the maximum value are permitted + = note: to exhaustively match on either pointer-size integer type, wildcards must be used + +error[E0004]: non-exhaustive patterns: `_` not covered + --> $DIR/non-exhaustive-pattern-pointer-size-int.rs:13:11 + | +LL | match 0isize { + | ^^^^^^ pattern `_` not covered + | + = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms + = note: the matched value is of type `isize` + = note: for `usize` and `isize`, no assumptions about the maximum value are permitted + = note: to exhaustively match on either pointer-size integer type, wildcards must be used + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0004`. |
