]>
git.proxmox.com Git - rustc.git/blob - src/test/ui/run-pass/structs-enums/enum-discrim-width-stuff.rs
1 // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
12 #![allow(overflowing_literals)]
16 ($m
:ident
, $t
:ty
, $v
:expr
) => {{
18 use std
::mem
::size_of
;
19 #[derive(Copy, Clone, Debug)]
26 assert_eq
!(size_of
::<E
>(), size_of
::<$t
>());
27 assert_eq
!(E
::V
as $t
, $v
as $t
);
28 assert_eq
!(C
as $t
, $v
as $t
);
29 assert_eq
!(format
!("{:?}", E
::V
), "V".to_string());
30 assert_eq
!(format
!("{:?}", C
), "V".to_string());
40 check
!(c
, u16, 0x1727);
41 check
!(d
, u16, 0xe8d8);
42 check
!(e
, u32, 0x17273747);
43 check
!(f
, u32, 0xe8d8c8b8);
47 check
!(x
, i16, 0x1727);
48 check
!(w
, i16, -0x1727);
49 check
!(v
, i32, 0x17273747);
50 check
!(u
, i32, -0x17273747);
53 assert_eq
!(::std
::mem
::size_of
::<Simple
>(), 1);