about summary refs log tree commit diff
path: root/src/test/ui/or-patterns/slice-patterns.rs
diff options
context:
space:
mode:
authorMatthew Kuo <matthew.kuo@dialexa.com>2020-03-04 01:33:32 -0600
committerMatthew Kuo <matthew.kuo@dialexa.com>2020-03-04 01:33:32 -0600
commitb4788a739b5dd040a969135bf46dc633c39fce16 (patch)
treece038f8904e9eb7c3ea887ad981df01e28e4f03b /src/test/ui/or-patterns/slice-patterns.rs
parent54561148581f002793ab42893de4e3f7c26bd7ed (diff)
downloadrust-b4788a739b5dd040a969135bf46dc633c39fce16.tar.gz
rust-b4788a739b5dd040a969135bf46dc633c39fce16.zip
test(pattern): harden tests for or-patterns with slice-patterns
Some of the nested OR paths were being missed
Diffstat (limited to 'src/test/ui/or-patterns/slice-patterns.rs')
-rw-r--r--src/test/ui/or-patterns/slice-patterns.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/test/ui/or-patterns/slice-patterns.rs b/src/test/ui/or-patterns/slice-patterns.rs
index 2f2e865d985..2526f048655 100644
--- a/src/test/ui/or-patterns/slice-patterns.rs
+++ b/src/test/ui/or-patterns/slice-patterns.rs
@@ -20,8 +20,8 @@ enum Test {
 
 fn test(foo: &[Option<Test>]) -> MatchArm {
     match foo {
-        [.., Some(Test::Foo | Test::Qux)] => MatchArm::Arm(0),
-        [Some(Test::Foo), .., Some(Test::Bar | Test::Baz)] => MatchArm::Arm(1),
+        [.., Some(Test::Qux | Test::Foo)] => MatchArm::Arm(0),
+        [Some(Test::Foo), .., Some(Test::Baz | Test::Bar)] => MatchArm::Arm(1),
         [.., Some(Test::Bar | Test::Baz), _] => MatchArm::Arm(2),
         _ => MatchArm::Wild,
     }
@@ -35,8 +35,18 @@ fn main() {
         Some(Test::Qux),
     ];
 
+    // path 1a
     assert_eq!(test(&foo), MatchArm::Arm(0));
+    // path 1b
+    assert_eq!(test(&[Some(Test::Bar), Some(Test::Foo)]), MatchArm::Arm(0));
+    // path 2a
     assert_eq!(test(&foo[..3]), MatchArm::Arm(1));
+    // path 2b
+    assert_eq!(test(&[Some(Test::Foo), Some(Test::Foo), Some(Test::Bar)]), MatchArm::Arm(1));
+    // path 3a
     assert_eq!(test(&foo[1..3]), MatchArm::Arm(2));
+    // path 3b
+    assert_eq!(test(&[Some(Test::Bar), Some(Test::Baz), Some(Test::Baz), Some(Test::Bar)]), MatchArm::Arm(2));
+    // path 4
     assert_eq!(test(&foo[4..]), MatchArm::Wild);
 }