From c00ecfa8d268ad34c90667a249384618a19ea39b Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 16 Nov 2019 16:18:46 +0000 Subject: [PATCH] Add some tests --- .../slice-patterns-exhaustiveness.rs | 18 +++++-- .../slice-patterns-exhaustiveness.stderr | 54 ++++++++++++------- 2 files changed, 49 insertions(+), 23 deletions(-) diff --git a/src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.rs b/src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.rs index 86cdf160618..11ca06e36ad 100644 --- a/src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.rs +++ b/src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.rs @@ -5,6 +5,20 @@ fn main() { let s1: &[bool; 1] = &[false; 1]; let s2: &[bool; 2] = &[false; 2]; let s3: &[bool; 3] = &[false; 3]; + let s10: &[bool; 10] = &[false; 10]; + + match s2 { + //~^ ERROR `&[false, _]` not covered + [true, .., true] => {} + } + match s3 { + //~^ ERROR `&[false, _, _]` not covered + [true, .., true] => {} + } + match s10 { + //~^ ERROR `&[false, _, _, _, _, _, _, _, _, _]` not covered + [true, .., true] => {} + } match s1 { [true, ..] => {} @@ -27,10 +41,6 @@ fn main() { [.., false] => {} } - match s3 { - //~^ ERROR `&[false, _, _]` not covered - [true, .., true] => {} - } match s { //~^ ERROR `&[_, ..]` not covered [] => {} diff --git a/src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.stderr b/src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.stderr index 1391b520556..7bf283ec741 100644 --- a/src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.stderr +++ b/src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.stderr @@ -1,5 +1,29 @@ +error[E0004]: non-exhaustive patterns: `&[false, _]` not covered + --> $DIR/slice-patterns-exhaustiveness.rs:10:11 + | +LL | match s2 { + | ^^ pattern `&[false, _]` not covered + | + = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms + +error[E0004]: non-exhaustive patterns: `&[false, _, _]` not covered + --> $DIR/slice-patterns-exhaustiveness.rs:14:11 + | +LL | match s3 { + | ^^ pattern `&[false, _, _]` not covered + | + = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms + +error[E0004]: non-exhaustive patterns: `&[false, _, _, _, _, _, _, _, _, _]` not covered + --> $DIR/slice-patterns-exhaustiveness.rs:18:11 + | +LL | match s10 { + | ^^^ pattern `&[false, _, _, _, _, _, _, _, _, _]` not covered + | + = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms + error[E0004]: non-exhaustive patterns: `&[false, true]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:13:11 + --> $DIR/slice-patterns-exhaustiveness.rs:27:11 | LL | match s2 { | ^^ pattern `&[false, true]` not covered @@ -7,7 +31,7 @@ LL | match s2 { = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms error[E0004]: non-exhaustive patterns: `&[false, _, true]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:18:11 + --> $DIR/slice-patterns-exhaustiveness.rs:32:11 | LL | match s3 { | ^^ pattern `&[false, _, true]` not covered @@ -15,23 +39,15 @@ LL | match s3 { = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms error[E0004]: non-exhaustive patterns: `&[false, .., true]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:23:11 + --> $DIR/slice-patterns-exhaustiveness.rs:37:11 | LL | match s { | ^ pattern `&[false, .., true]` not covered | = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms -error[E0004]: non-exhaustive patterns: `&[false, _, _]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:30:11 - | -LL | match s3 { - | ^^ pattern `&[false, _, _]` not covered - | - = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms - error[E0004]: non-exhaustive patterns: `&[_, ..]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:34:11 + --> $DIR/slice-patterns-exhaustiveness.rs:44:11 | LL | match s { | ^ pattern `&[_, ..]` not covered @@ -39,7 +55,7 @@ LL | match s { = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms error[E0004]: non-exhaustive patterns: `&[_, _, ..]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:38:11 + --> $DIR/slice-patterns-exhaustiveness.rs:48:11 | LL | match s { | ^ pattern `&[_, _, ..]` not covered @@ -47,7 +63,7 @@ LL | match s { = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms error[E0004]: non-exhaustive patterns: `&[false, ..]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:43:11 + --> $DIR/slice-patterns-exhaustiveness.rs:53:11 | LL | match s { | ^ pattern `&[false, ..]` not covered @@ -55,7 +71,7 @@ LL | match s { = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms error[E0004]: non-exhaustive patterns: `&[false, _, ..]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:48:11 + --> $DIR/slice-patterns-exhaustiveness.rs:58:11 | LL | match s { | ^ pattern `&[false, _, ..]` not covered @@ -63,7 +79,7 @@ LL | match s { = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms error[E0004]: non-exhaustive patterns: `&[_, .., false]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:54:11 + --> $DIR/slice-patterns-exhaustiveness.rs:64:11 | LL | match s { | ^ pattern `&[_, .., false]` not covered @@ -71,7 +87,7 @@ LL | match s { = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms error[E0004]: non-exhaustive patterns: `&[_, _, .., true]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:61:11 + --> $DIR/slice-patterns-exhaustiveness.rs:71:11 | LL | match s { | ^ pattern `&[_, _, .., true]` not covered @@ -79,13 +95,13 @@ LL | match s { = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms error[E0004]: non-exhaustive patterns: `&[true, _, .., _]` not covered - --> $DIR/slice-patterns-exhaustiveness.rs:68:11 + --> $DIR/slice-patterns-exhaustiveness.rs:78:11 | LL | match s { | ^ pattern `&[true, _, .., _]` not covered | = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms -error: aborting due to 11 previous errors +error: aborting due to 13 previous errors For more information about this error, try `rustc --explain E0004`. -- 2.44.0