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.
11 #[repr(u8)] //~ NOTE discriminant type specified here
15 Cu8 = -23, //~ ERROR discriminant value outside specified type
18 #[repr(i8)] //~ NOTE discriminant type specified here
22 Ci8 = 223, //~ ERROR discriminant value outside specified type
25 #[repr(u16)] //~ NOTE discriminant type specified here
29 Cu16 = -22333, //~ ERROR discriminant value outside specified type
32 #[repr(i16)] //~ NOTE discriminant type specified here
36 Ci16 = 55555, //~ ERROR discriminant value outside specified type
39 #[repr(u32)] //~ NOTE discriminant type specified here
43 Cu32 = -2_000_000_000, //~ ERROR discriminant value outside specified type
46 #[repr(i32)] //~ NOTE discriminant type specified here
49 Bi32 = -2_000_000_000,
50 Ci32 = 3_000_000_000, //~ ERROR discriminant value outside specified type
53 // u64 currently allows negative numbers, and i64 allows numbers greater than `1<<63`. This is a
54 // little counterintuitive, but since the discriminant can store all the bits, and extracting it
55 // with a cast requires specifying the signedness, there is no loss of information in those cases.
56 // This also applies to isize and usize on 64-bit targets.