4 const STR: &'static str = "hello";
5 const BSTR: &'static [u8; 5] = b"hello";
8 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, *const ()) {
9 let f = 1_usize as *const String;
20 let c11 = f as *const ();
21 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11)
25 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
38 let c13 = 1 as *const String;
39 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
43 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
44 let c1 = 1_usize as isize;
45 let c2 = 1_usize as usize;
46 let c3 = 1_usize as i8;
47 let c4 = 1_usize as i16;
48 let c5 = 1_usize as i32;
49 let c6 = 1_usize as i64;
50 let c7 = 1_usize as u8;
51 let c8 = 1_usize as u16;
52 let c9 = 1_usize as u32;
53 let c10 = 1_usize as u64;
54 let c11 = 1_usize as f32;
55 let c12 = 1_usize as f64;
56 let c13 = 1_usize as *const String;
57 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
61 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
62 let c1 = 1_isize as isize;
63 let c2 = 1_isize as usize;
64 let c3 = 1_isize as i8;
65 let c4 = 1_isize as i16;
66 let c5 = 1_isize as i32;
67 let c6 = 1_isize as i64;
68 let c7 = 1_isize as u8;
69 let c8 = 1_isize as u16;
70 let c9 = 1_isize as u32;
71 let c10 = 1_isize as u64;
72 let c11 = 1_isize as f32;
73 let c12 = 1_isize as f64;
74 let c13 = 1_isize as *const String;
75 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
79 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
80 let c1 = 1_u8 as isize;
81 let c2 = 1_u8 as usize;
89 let c10 = 1_u8 as u64;
90 let c11 = 1_u8 as f32;
91 let c12 = 1_u8 as f64;
92 let c13 = 1_u8 as *const String;
93 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
97 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
98 let c1 = 1_i8 as isize;
99 let c2 = 1_i8 as usize;
101 let c4 = 1_i8 as i16;
102 let c5 = 1_i8 as i32;
103 let c6 = 1_i8 as i64;
105 let c8 = 1_i8 as u16;
106 let c9 = 1_i8 as u32;
107 let c10 = 1_i8 as u64;
108 let c11 = 1_i8 as f32;
109 let c12 = 1_i8 as f64;
110 let c13 = 1_i8 as *const String;
111 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
115 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
116 let c1 = 1_u16 as isize;
117 let c2 = 1_u16 as usize;
118 let c3 = 1_u16 as i8;
119 let c4 = 1_u16 as i16;
120 let c5 = 1_u16 as i32;
121 let c6 = 1_u16 as i64;
122 let c7 = 1_u16 as u8;
123 let c8 = 1_u16 as u16;
124 let c9 = 1_u16 as u32;
125 let c10 = 1_u16 as u64;
126 let c11 = 1_u16 as f32;
127 let c12 = 1_u16 as f64;
128 let c13 = 1_u16 as *const String;
129 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
133 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
134 let c1 = 1_i16 as isize;
135 let c2 = 1_i16 as usize;
136 let c3 = 1_i16 as i8;
137 let c4 = 1_i16 as i16;
138 let c5 = 1_i16 as i32;
139 let c6 = 1_i16 as i64;
140 let c7 = 1_i16 as u8;
141 let c8 = 1_i16 as u16;
142 let c9 = 1_i16 as u32;
143 let c10 = 1_i16 as u64;
144 let c11 = 1_i16 as f32;
145 let c12 = 1_i16 as f64;
146 let c13 = 1_i16 as *const String;
147 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
151 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
152 let c1 = 1_u32 as isize;
153 let c2 = 1_u32 as usize;
154 let c3 = 1_u32 as i8;
155 let c4 = 1_u32 as i16;
156 let c5 = 1_u32 as i32;
157 let c6 = 1_u32 as i64;
158 let c7 = 1_u32 as u8;
159 let c8 = 1_u32 as u16;
160 let c9 = 1_u32 as u32;
161 let c10 = 1_u32 as u64;
162 let c11 = 1_u32 as f32;
163 let c12 = 1_u32 as f64;
164 let c13 = 1_u32 as *const String;
165 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
169 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
170 let c1 = 1_i32 as isize;
171 let c2 = 1_i32 as usize;
172 let c3 = 1_i32 as i8;
173 let c4 = 1_i32 as i16;
174 let c5 = 1_i32 as i32;
175 let c6 = 1_i32 as i64;
176 let c7 = 1_i32 as u8;
177 let c8 = 1_i32 as u16;
178 let c9 = 1_i32 as u32;
179 let c10 = 1_i32 as u64;
180 let c11 = 1_i32 as f32;
181 let c12 = 1_i32 as f64;
182 let c13 = 1_i32 as *const String;
183 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
187 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
188 let c1 = 1_u64 as isize;
189 let c2 = 1_u64 as usize;
190 let c3 = 1_u64 as i8;
191 let c4 = 1_u64 as i16;
192 let c5 = 1_u64 as i32;
193 let c6 = 1_u64 as i64;
194 let c7 = 1_u64 as u8;
195 let c8 = 1_u64 as u16;
196 let c9 = 1_u64 as u32;
197 let c10 = 1_u64 as u64;
198 let c11 = 1_u64 as f32;
199 let c12 = 1_u64 as f64;
200 let c13 = 1_u64 as *const String;
201 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
205 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64, *const String) {
206 let c1 = 1_i64 as isize;
207 let c2 = 1_i64 as usize;
208 let c3 = 1_i64 as i8;
209 let c4 = 1_i64 as i16;
210 let c5 = 1_i64 as i32;
211 let c6 = 1_i64 as i64;
212 let c7 = 1_i64 as u8;
213 let c8 = 1_i64 as u16;
214 let c9 = 1_i64 as u32;
215 let c10 = 1_i64 as u64;
216 let c11 = 1_i64 as f32;
217 let c12 = 1_i64 as f64;
218 let c13 = 1_i64 as *const String;
219 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
223 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64) {
224 let c1 = true as isize;
225 let c2 = true as usize;
227 let c4 = true as i16;
228 let c5 = true as i32;
229 let c6 = true as i64;
231 let c8 = true as u16;
232 let c9 = true as u32;
233 let c10 = true as u64;
234 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10)
238 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64) {
239 let c1 = 1.0_f32 as isize;
240 let c2 = 1.0_f32 as usize;
241 let c3 = 1.0_f32 as i8;
242 let c4 = 1.0_f32 as i16;
243 let c5 = 1.0_f32 as i32;
244 let c6 = 1.0_f32 as i64;
245 let c7 = 1.0_f32 as u8;
246 let c8 = 1.0_f32 as u16;
247 let c9 = 1.0_f32 as u32;
248 let c10 = 1.0_f32 as u64;
249 let c11 = 1.0_f32 as f32;
250 let c12 = 1.0_f32 as f64;
251 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12)
255 -> (isize, usize, i8, i16, i32, i64, u8, u16, u32, u64, f32, f64) {
256 let c1 = 1.0f64 as isize;
257 let c2 = 1.0f64 as usize;
258 let c3 = 1.0f64 as i8;
259 let c4 = 1.0f64 as i16;
260 let c5 = 1.0f64 as i32;
261 let c6 = 1.0f64 as i64;
262 let c7 = 1.0f64 as u8;
263 let c8 = 1.0f64 as u16;
264 let c9 = 1.0f64 as u32;
265 let c10 = 1.0f64 as u64;
266 let c11 = 1.0f64 as f32;
267 let c12 = 1.0f64 as f64;
268 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12)
272 -> (*const u8, *const isize, *const u8, *const u8) {
273 let c1 = func as *const u8;
274 let c2 = c1 as *const isize;
277 let _ = r as *const u32;
279 // fat-ptr -> fat-ptr -> fat-raw-ptr -> thin-ptr
280 let c3 = STR as &str as *const str as *const u8;
282 let c4 = BSTR as *const [u8] as *const [u16] as *const u8;
286 pub fn assert_eq_13(l: (isize, usize, i8, i16, i32, i64, u8,
287 u16, u32, u64, f32, f64, *const String),
288 r: (isize, usize, i8, i16, i32, i64, u8,
289 u16, u32, u64, f32, f64, *const String)) -> bool {
290 let (l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13) = l;
291 let (r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13) = r;
292 l1 == r1 && l2 == r2 && l3 == r3 && l4 == r4 && l5 == r5 && l6 == r6 && l7 == r7 &&
293 l8 == r8 && l9 == r9 && l10 == r10 && l11 == r11 && l12 == r12 && l13 == r13
298 let f = 1_usize as *const String;
299 let t13 = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.0, 1.0, f);
300 let t12 = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.0, 1.0);
301 assert_eq_13(from_1(), t13);
302 assert_eq_13(from_1usize(), t13);
303 assert_eq_13(from_1isize(), t13);
304 assert_eq_13(from_1u8(), t13);
305 assert_eq_13(from_1i8(), t13);
306 assert_eq_13(from_1u16(), t13);
307 assert_eq_13(from_1i16(), t13);
308 assert_eq_13(from_1u32(), t13);
309 assert_eq_13(from_1i32(), t13);
310 assert_eq_13(from_1u64(), t13);
311 assert_eq_13(from_1i64(), t13);
312 assert_eq!(from_1f32(), t12);
313 assert_eq!(from_1f64(), t12);
315 assert_eq!(from_ptr(), (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 as *const ()));
316 assert_eq!(from_bool(), (1, 1, 1, 1, 1, 1, 1, 1, 1, 1));
318 assert_eq!(other_casts(), (func as *const u8, func as *const isize,
319 STR as *const str as *const u8, BSTR as *const [u8] as *const u8));