]> git.lizzy.rs Git - rust.git/blob - src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.rs
Add some tests
[rust.git] / src / test / ui / pattern / usefulness / slice-patterns-exhaustiveness.rs
1 #![feature(slice_patterns)]
2
3 fn main() {
4     let s: &[bool] = &[true; 0];
5     let s1: &[bool; 1] = &[false; 1];
6     let s2: &[bool; 2] = &[false; 2];
7     let s3: &[bool; 3] = &[false; 3];
8     let s10: &[bool; 10] = &[false; 10];
9
10     match s2 {
11     //~^ ERROR `&[false, _]` not covered
12         [true, .., true] => {}
13     }
14     match s3 {
15     //~^ ERROR `&[false, _, _]` not covered
16         [true, .., true] => {}
17     }
18     match s10 {
19     //~^ ERROR `&[false, _, _, _, _, _, _, _, _, _]` not covered
20         [true, .., true] => {}
21     }
22
23     match s1 {
24         [true, ..] => {}
25         [.., false] => {}
26     }
27     match s2 {
28     //~^ ERROR `&[false, true]` not covered
29         [true, ..] => {}
30         [.., false] => {}
31     }
32     match s3 {
33     //~^ ERROR `&[false, _, true]` not covered
34         [true, ..] => {}
35         [.., false] => {}
36     }
37     match s {
38     //~^ ERROR `&[false, .., true]` not covered
39         [] => {}
40         [true, ..] => {}
41         [.., false] => {}
42     }
43
44     match s {
45     //~^ ERROR `&[_, ..]` not covered
46         [] => {}
47     }
48     match s {
49     //~^ ERROR `&[_, _, ..]` not covered
50         [] => {}
51         [_] => {}
52     }
53     match s {
54     //~^ ERROR `&[false, ..]` not covered
55         [] => {}
56         [true, ..] => {}
57     }
58     match s {
59     //~^ ERROR `&[false, _, ..]` not covered
60         [] => {}
61         [_] => {}
62         [true, ..] => {}
63     }
64     match s {
65     //~^ ERROR `&[_, .., false]` not covered
66         [] => {}
67         [_] => {}
68         [.., true] => {}
69     }
70
71     match s {
72     //~^ ERROR `&[_, _, .., true]` not covered
73         [] => {}
74         [_] => {}
75         [_, _] => {}
76         [.., false] => {}
77     }
78     match s {
79     //~^ ERROR `&[true, _, .., _]` not covered
80         [] => {}
81         [_] => {}
82         [_, _] => {}
83         [false, .., false] => {}
84     }
85 }