]>
git.proxmox.com Git - rustc.git/blob - src/test/compile-fail/lint-type-overflow.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 #![deny(overflowing_literals)]
18 #[allow(unused_variables)]
20 let x1
: u8 = 255; // should be OK
21 let x1
: u8 = 256; //~ error: literal out of range for u8
23 let x1
= 255_u8; // should be OK
24 let x1
= 256_u8; //~ error: literal out of range for u8
26 let x2
: i8 = -128; // should be OK
27 let x1
: i8 = 128; //~ error: literal out of range for i8
28 let x2
: i8 = --128; //~ error: literal out of range for i8
30 let x3
: i8 = -129; //~ error: literal out of range for i8
31 let x3
: i8 = -(129); //~ error: literal out of range for i8
32 let x3
: i8 = -{129}
; //~ error: literal out of range for i8
34 test(1000); //~ error: literal out of range for i8
36 let x
= 128_i8; //~ error: literal out of range for i8
40 let x
= -129_i8; //~ error: literal out of range for i8
42 let x
: i32 = 2147483647; // should be OK
43 let x
= 2147483647_i32; // should be OK
44 let x
: i32 = 2147483648; //~ error: literal out of range for i32
45 let x
= 2147483648_i32; //~ error: literal out of range for i32
46 let x
: i32 = -2147483648; // should be OK
47 let x
= -2147483648_i32; // should be OK
48 let x
: i32 = -2147483649; //~ error: literal out of range for i32
49 let x
= -2147483649_i32; //~ error: literal out of range for i32
50 let x
= 2147483648; //~ error: literal out of range for i32
52 let x
= 9223372036854775808_i64; //~ error: literal out of range for i64
53 let x
= -9223372036854775808_i64; // should be OK
54 let x
= 18446744073709551615_i64; //~ error: literal out of range for i64
55 let x
: i64 = -9223372036854775809; //~ error: literal out of range for i64
56 let x
= -9223372036854775809_i64; //~ error: literal out of range for i64
58 let x
= -3.40282348e+38_f32; //~ error: literal out of range for f32
59 let x
= 3.40282348e+38_f32; //~ error: literal out of range for f32
60 let x
= -1.7976931348623159e+308_f64; //~ error: literal out of range for f64
61 let x
= 1.7976931348623159e+308_f64; //~ error: literal out of range for f64