]> git.proxmox.com Git - rustc.git/blob - src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.rs
52d1320dad153435950e8e4e5a30a92eff785d42
[rustc.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 `&[..]` not covered
87 CONST => {}
88 }
89 match s {
90 //~^ ERROR `&[true]` not covered
91 [] => {},
92 [false] => {},
93 CONST => {},
94 [_, _, ..] => {}
95 }
96 const CONST1: &[bool; 1] = &[true];
97 match s1 {
98 //~^ ERROR `&[false]` not covered
99 CONST1 => {}
100 }
101 match s1 {
102 CONST1 => {}
103 [false] => {}
104 }
105 }