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