]> git.proxmox.com Git - rustc.git/blob - tests/ui/numeric/numeric-cast.rs
New upstream version 1.68.2+dfsg1
[rustc.git] / tests / ui / numeric / numeric-cast.rs
1 // run-rustfix
2
3 // The `try_into` suggestion doesn't include this, but we do suggest it after applying it
4 use std::convert::TryInto;
5
6 fn foo<N>(_x: N) {}
7
8 fn main() {
9 let x_usize: usize = 1;
10 let x_u64: u64 = 2;
11 let x_u32: u32 = 3;
12 let x_u16: u16 = 4;
13 let x_u8: u8 = 5;
14 let x_isize: isize = 6;
15 let x_i64: i64 = 7;
16 let x_i32: i32 = 8;
17 let x_i16: i16 = 9;
18 let x_i8: i8 = 10;
19 let x_f64: f64 = 11.0;
20 let x_f32: f32 = 12.0;
21
22 foo::<usize>(x_usize);
23 foo::<usize>(x_u64);
24 //~^ ERROR mismatched types
25 foo::<usize>(x_u32);
26 //~^ ERROR mismatched types
27 foo::<usize>(x_u16);
28 //~^ ERROR mismatched types
29 foo::<usize>(x_u8);
30 //~^ ERROR mismatched types
31 foo::<usize>(x_isize);
32 //~^ ERROR mismatched types
33 foo::<usize>(x_i64);
34 //~^ ERROR mismatched types
35 foo::<usize>(x_i32);
36 //~^ ERROR mismatched types
37 foo::<usize>(x_i16);
38 //~^ ERROR mismatched types
39 foo::<usize>(x_i8);
40 //~^ ERROR mismatched types
41 // foo::<usize>(x_f64);
42 // foo::<usize>(x_f32);
43
44 foo::<isize>(x_usize);
45 //~^ ERROR mismatched types
46 foo::<isize>(x_u64);
47 //~^ ERROR mismatched types
48 foo::<isize>(x_u32);
49 //~^ ERROR mismatched types
50 foo::<isize>(x_u16);
51 //~^ ERROR mismatched types
52 foo::<isize>(x_u8);
53 //~^ ERROR mismatched types
54 foo::<isize>(x_isize);
55 foo::<isize>(x_i64);
56 //~^ ERROR mismatched types
57 foo::<isize>(x_i32);
58 //~^ ERROR mismatched types
59 foo::<isize>(x_i16);
60 //~^ ERROR mismatched types
61 foo::<isize>(x_i8);
62 //~^ ERROR mismatched types
63 // foo::<isize>(x_f64);
64 // foo::<isize>(x_f32);
65
66 foo::<u64>(x_usize);
67 //~^ ERROR mismatched types
68 foo::<u64>(x_u64);
69 foo::<u64>(x_u32);
70 //~^ ERROR mismatched types
71 foo::<u64>(x_u16);
72 //~^ ERROR mismatched types
73 foo::<u64>(x_u8);
74 //~^ ERROR mismatched types
75 foo::<u64>(x_isize);
76 //~^ ERROR mismatched types
77 foo::<u64>(x_i64);
78 //~^ ERROR mismatched types
79 foo::<u64>(x_i32);
80 //~^ ERROR mismatched types
81 foo::<u64>(x_i16);
82 //~^ ERROR mismatched types
83 foo::<u64>(x_i8);
84 //~^ ERROR mismatched types
85 // foo::<u64>(x_f64);
86 // foo::<u64>(x_f32);
87
88 foo::<i64>(x_usize);
89 //~^ ERROR mismatched types
90 foo::<i64>(x_u64);
91 //~^ ERROR mismatched types
92 foo::<i64>(x_u32);
93 //~^ ERROR mismatched types
94 foo::<i64>(x_u16);
95 //~^ ERROR mismatched types
96 foo::<i64>(x_u8);
97 //~^ ERROR mismatched types
98 foo::<i64>(x_isize);
99 //~^ ERROR mismatched types
100 foo::<i64>(x_i64);
101 foo::<i64>(x_i32);
102 //~^ ERROR mismatched types
103 foo::<i64>(x_i16);
104 //~^ ERROR mismatched types
105 foo::<i64>(x_i8);
106 //~^ ERROR mismatched types
107 // foo::<i64>(x_f64);
108 // foo::<i64>(x_f32);
109
110 foo::<u32>(x_usize);
111 //~^ ERROR mismatched types
112 foo::<u32>(x_u64);
113 //~^ ERROR mismatched types
114 foo::<u32>(x_u32);
115 foo::<u32>(x_u16);
116 //~^ ERROR mismatched types
117 foo::<u32>(x_u8);
118 //~^ ERROR mismatched types
119 foo::<u32>(x_isize);
120 //~^ ERROR mismatched types
121 foo::<u32>(x_i64);
122 //~^ ERROR mismatched types
123 foo::<u32>(x_i32);
124 //~^ ERROR mismatched types
125 foo::<u32>(x_i16);
126 //~^ ERROR mismatched types
127 foo::<u32>(x_i8);
128 //~^ ERROR mismatched types
129 // foo::<u32>(x_f64);
130 // foo::<u32>(x_f32);
131
132 foo::<i32>(x_usize);
133 //~^ ERROR mismatched types
134 foo::<i32>(x_u64);
135 //~^ ERROR mismatched types
136 foo::<i32>(x_u32);
137 //~^ ERROR mismatched types
138 foo::<i32>(x_u16);
139 //~^ ERROR mismatched types
140 foo::<i32>(x_u8);
141 //~^ ERROR mismatched types
142 foo::<i32>(x_isize);
143 //~^ ERROR mismatched types
144 foo::<i32>(x_i64);
145 //~^ ERROR mismatched types
146 foo::<i32>(x_i32);
147 foo::<i32>(x_i16);
148 //~^ ERROR mismatched types
149 foo::<i32>(x_i8);
150 //~^ ERROR mismatched types
151 // foo::<i32>(x_f64);
152 // foo::<i32>(x_f32);
153
154 foo::<u16>(x_usize);
155 //~^ ERROR mismatched types
156 foo::<u16>(x_u64);
157 //~^ ERROR mismatched types
158 foo::<u16>(x_u32);
159 //~^ ERROR mismatched types
160 foo::<u16>(x_u16);
161 foo::<u16>(x_u8);
162 //~^ ERROR mismatched types
163 foo::<u16>(x_isize);
164 //~^ ERROR mismatched types
165 foo::<u16>(x_i64);
166 //~^ ERROR mismatched types
167 foo::<u16>(x_i32);
168 //~^ ERROR mismatched types
169 foo::<u16>(x_i16);
170 //~^ ERROR mismatched types
171 foo::<u16>(x_i8);
172 //~^ ERROR mismatched types
173 // foo::<u16>(x_f64);
174 // foo::<u16>(x_f32);
175
176 foo::<i16>(x_usize);
177 //~^ ERROR mismatched types
178 foo::<i16>(x_u64);
179 //~^ ERROR mismatched types
180 foo::<i16>(x_u32);
181 //~^ ERROR mismatched types
182 foo::<i16>(x_u16);
183 //~^ ERROR mismatched types
184 foo::<i16>(x_u8);
185 //~^ ERROR mismatched types
186 foo::<i16>(x_isize);
187 //~^ ERROR mismatched types
188 foo::<i16>(x_i64);
189 //~^ ERROR mismatched types
190 foo::<i16>(x_i32);
191 //~^ ERROR mismatched types
192 foo::<i16>(x_i16);
193 foo::<i16>(x_i8);
194 //~^ ERROR mismatched types
195 // foo::<i16>(x_f64);
196 // foo::<i16>(x_f32);
197
198 foo::<u8>(x_usize);
199 //~^ ERROR mismatched types
200 foo::<u8>(x_u64);
201 //~^ ERROR mismatched types
202 foo::<u8>(x_u32);
203 //~^ ERROR mismatched types
204 foo::<u8>(x_u16);
205 //~^ ERROR mismatched types
206 foo::<u8>(x_u8);
207 foo::<u8>(x_isize);
208 //~^ ERROR mismatched types
209 foo::<u8>(x_i64);
210 //~^ ERROR mismatched types
211 foo::<u8>(x_i32);
212 //~^ ERROR mismatched types
213 foo::<u8>(x_i16);
214 //~^ ERROR mismatched types
215 foo::<u8>(x_i8);
216 //~^ ERROR mismatched types
217 // foo::<u8>(x_f64);
218 // foo::<u8>(x_f32);
219
220 foo::<i8>(x_usize);
221 //~^ ERROR mismatched types
222 foo::<i8>(x_u64);
223 //~^ ERROR mismatched types
224 foo::<i8>(x_u32);
225 //~^ ERROR mismatched types
226 foo::<i8>(x_u16);
227 //~^ ERROR mismatched types
228 foo::<i8>(x_u8);
229 //~^ ERROR mismatched types
230 foo::<i8>(x_isize);
231 //~^ ERROR mismatched types
232 foo::<i8>(x_i64);
233 //~^ ERROR mismatched types
234 foo::<i8>(x_i32);
235 //~^ ERROR mismatched types
236 foo::<i8>(x_i16);
237 //~^ ERROR mismatched types
238 foo::<i8>(x_i8);
239 // foo::<i8>(x_f64);
240 // foo::<i8>(x_f32);
241
242 foo::<f64>(x_usize);
243 //~^ ERROR mismatched types
244 foo::<f64>(x_u64);
245 //~^ ERROR mismatched types
246 foo::<f64>(x_u32);
247 //~^ ERROR mismatched types
248 foo::<f64>(x_u16);
249 //~^ ERROR mismatched types
250 foo::<f64>(x_u8);
251 //~^ ERROR mismatched types
252 foo::<f64>(x_isize);
253 //~^ ERROR mismatched types
254 foo::<f64>(x_i64);
255 //~^ ERROR mismatched types
256 foo::<f64>(x_i32);
257 //~^ ERROR mismatched types
258 foo::<f64>(x_i16);
259 //~^ ERROR mismatched types
260 foo::<f64>(x_i8);
261 //~^ ERROR mismatched types
262 foo::<f64>(x_f64);
263 foo::<f64>(x_f32);
264 //~^ ERROR mismatched types
265
266 foo::<f32>(x_usize);
267 //~^ ERROR mismatched types
268 foo::<f32>(x_u64);
269 //~^ ERROR mismatched types
270 foo::<f32>(x_u32);
271 //~^ ERROR mismatched types
272 foo::<f32>(x_u16);
273 //~^ ERROR mismatched types
274 foo::<f32>(x_u8);
275 //~^ ERROR mismatched types
276 foo::<f32>(x_isize);
277 //~^ ERROR mismatched types
278 foo::<f32>(x_i64);
279 //~^ ERROR mismatched types
280 foo::<f32>(x_i32);
281 //~^ ERROR mismatched types
282 foo::<f32>(x_i16);
283 //~^ ERROR mismatched types
284 foo::<f32>(x_i8);
285 //~^ ERROR mismatched types
286 // foo::<f32>(x_f64);
287 foo::<f32>(x_f32);
288
289 foo::<u32>(x_u8 as u16);
290 //~^ ERROR mismatched types
291 foo::<i32>(-x_i8);
292 //~^ ERROR mismatched types
293 }