]> git.proxmox.com Git - rustc.git/blob - src/test/ui/pattern/usefulness/slice-patterns-exhaustiveness.rs
Merge remote-tracking branch 'origin/debian/sid' into debian/sid
[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 `&[]` 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 }