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