]> git.lizzy.rs Git - rust.git/blob - src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.rs
Auto merge of #78682 - glandium:issue78471, r=lcnr
[rust.git] / src / test / ui / pattern / usefulness / slice-patterns-exhaustiveness.rs
1 fn main() {
2     let s: &[bool] = &[true; 0];
3     let s1: &[bool; 1] = &[false; 1];
4     let s2: &[bool; 2] = &[false; 2];
5     let s3: &[bool; 3] = &[false; 3];
6     let s10: &[bool; 10] = &[false; 10];
7
8     match s2 {
9         //~^ ERROR `&[false, _]` not covered
10         [true, .., true] => {}
11     }
12     match s3 {
13         //~^ ERROR `&[false, ..]` not covered
14         [true, .., true] => {}
15     }
16     match s10 {
17         //~^ ERROR `&[false, ..]` not covered
18         [true, .., true] => {}
19     }
20
21     match s1 {
22         [true, ..] => {}
23         [.., false] => {}
24     }
25     match s2 {
26         //~^ ERROR `&[false, true]` not covered
27         [true, ..] => {}
28         [.., false] => {}
29     }
30     match s3 {
31         //~^ ERROR `&[false, .., true]` not covered
32         [true, ..] => {}
33         [.., false] => {}
34     }
35     match s {
36         //~^ ERROR `&[false, .., true]` not covered
37         [] => {}
38         [true, ..] => {}
39         [.., false] => {}
40     }
41
42     match s {
43         //~^ ERROR `&[_, ..]` not covered
44         [] => {}
45     }
46     match s {
47         //~^ ERROR `&[_, _, ..]` not covered
48         [] => {}
49         [_] => {}
50     }
51     match s {
52         //~^ ERROR `&[false, ..]` not covered
53         [] => {}
54         [true, ..] => {}
55     }
56     match s {
57         //~^ ERROR `&[false, _, ..]` not covered
58         [] => {}
59         [_] => {}
60         [true, ..] => {}
61     }
62     match s {
63         //~^ ERROR `&[_, .., false]` not covered
64         [] => {}
65         [_] => {}
66         [.., true] => {}
67     }
68
69     match s {
70         //~^ ERROR `&[_, _, .., true]` not covered
71         [] => {}
72         [_] => {}
73         [_, _] => {}
74         [.., false] => {}
75     }
76     match s {
77         //~^ ERROR `&[true, _, .., _]` not covered
78         [] => {}
79         [_] => {}
80         [_, _] => {}
81         [false, .., false] => {}
82     }
83
84     const CONST: &[bool] = &[true];
85     match s {
86         //~^ ERROR `&[]` and `&[_, _, ..]` not covered
87         &[true] => {}
88     }
89     match s {
90         //~^ ERROR `&[]` and `&[_, _, ..]` not covered
91         CONST => {}
92     }
93     match s {
94         //~^ ERROR `&[]` and `&[_, _, ..]` not covered
95         CONST => {}
96         &[false] => {}
97     }
98     match s {
99         //~^ ERROR `&[]` and `&[_, _, ..]` not covered
100         &[false] => {}
101         CONST => {}
102     }
103     match s {
104         //~^ ERROR `&[_, _, ..]` not covered
105         &[] => {}
106         CONST => {}
107     }
108     match s {
109         //~^ ERROR `&[false]` not covered
110         &[] => {}
111         CONST => {}
112         &[_, _, ..] => {}
113     }
114     match s {
115         [] => {}
116         [false] => {}
117         CONST => {}
118         [_, _, ..] => {}
119     }
120     const CONST1: &[bool; 1] = &[true];
121     match s1 {
122         //~^ ERROR `&[false]` not covered
123         CONST1 => {}
124     }
125     match s1 {
126         CONST1 => {}
127         [false] => {}
128     }
129 }