]> git.lizzy.rs Git - rust.git/blob - src/test/ui/consts/const-blocks/migrate-pass.rs
Remove const_in_array_rep_expr
[rust.git] / src / test / ui / consts / const-blocks / migrate-pass.rs
1 // check-pass
2 // compile-flags: -Z borrowck=migrate
3 // ignore-compare-mode-nll
4 #![allow(warnings)]
5
6 // Some type that is not copyable.
7 struct Bar;
8
9 mod constants {
10     use Bar;
11
12     fn no_impl_copy_empty_value_no_elements() {
13         const FOO: Option<Bar> = None;
14         const ARR: [Option<Bar>; 0] = [FOO; 0];
15     }
16
17     fn no_impl_copy_empty_value_single_element() {
18         const FOO: Option<Bar> = None;
19         const ARR: [Option<Bar>; 1] = [FOO; 1];
20     }
21
22     fn no_impl_copy_empty_value_multiple_elements() {
23         const FOO: Option<Bar> = None;
24         const ARR: [Option<Bar>; 2] = [FOO; 2];
25     }
26
27     fn no_impl_copy_value_no_elements() {
28         const FOO: Option<Bar> = Some(Bar);
29         const ARR: [Option<Bar>; 0] = [FOO; 0];
30     }
31
32     fn no_impl_copy_value_single_element() {
33         const FOO: Option<Bar> = Some(Bar);
34         const ARR: [Option<Bar>; 1] = [FOO; 1];
35     }
36
37     fn no_impl_copy_value_multiple_elements() {
38         const FOO: Option<Bar> = Some(Bar);
39         const ARR: [Option<Bar>; 2] = [FOO; 2];
40     }
41
42     fn impl_copy_empty_value_no_elements() {
43         const FOO: Option<u32> = None;
44         const ARR: [Option<u32>; 0] = [FOO; 0];
45     }
46
47     fn impl_copy_empty_value_one_element() {
48         const FOO: Option<u32> = None;
49         const ARR: [Option<u32>; 1] = [FOO; 1];
50     }
51
52     fn impl_copy_empty_value_multiple_elements() {
53         const FOO: Option<u32> = None;
54         const ARR: [Option<u32>; 2] = [FOO; 2];
55     }
56
57     fn impl_copy_value_no_elements() {
58         const FOO: Option<u32> = Some(4);
59         const ARR: [Option<u32>; 0] = [FOO; 0];
60     }
61
62     fn impl_copy_value_one_element() {
63         const FOO: Option<u32> = Some(4);
64         const ARR: [Option<u32>; 1] = [FOO; 1];
65     }
66
67     fn impl_copy_value_multiple_elements() {
68         const FOO: Option<u32> = Some(4);
69         const ARR: [Option<u32>; 2] = [FOO; 2];
70     }
71 }
72
73 mod non_constants {
74     use Bar;
75
76     fn no_impl_copy_empty_value_no_elements() {
77         let x = None;
78         let arr: [Option<Bar>; 0] = [x; 0];
79     }
80
81     fn no_impl_copy_empty_value_single_element() {
82         let x = None;
83         let arr: [Option<Bar>; 1] = [x; 1];
84     }
85
86     fn no_impl_copy_value_no_elements() {
87         let x = Some(Bar);
88         let arr: [Option<Bar>; 0] = [x; 0];
89     }
90
91     fn no_impl_copy_value_single_element() {
92         let x = Some(Bar);
93         let arr: [Option<Bar>; 1] = [x; 1];
94     }
95
96     fn impl_copy_empty_value_no_elements() {
97         let x: Option<u32> = None;
98         let arr: [Option<u32>; 0] = [x; 0];
99     }
100
101     fn impl_copy_empty_value_one_element() {
102         let x: Option<u32> = None;
103         let arr: [Option<u32>; 1] = [x; 1];
104     }
105
106     fn impl_copy_empty_value_multiple_elements() {
107         let x: Option<u32> = None;
108         let arr: [Option<u32>; 2] = [x; 2];
109     }
110
111     fn impl_copy_value_no_elements() {
112         let x: Option<u32> = Some(4);
113         let arr: [Option<u32>; 0] = [x; 0];
114     }
115
116     fn impl_copy_value_one_element() {
117         let x: Option<u32> = Some(4);
118         let arr: [Option<u32>; 1] = [x; 1];
119     }
120
121     fn impl_copy_value_multiple_elements() {
122         let x: Option<u32> = Some(4);
123         let arr: [Option<u32>; 2] = [x; 2];
124     }
125 }
126
127 fn main() {}