]> git.lizzy.rs Git - rust.git/blob - tests/ui/cast.rs
Merge pull request #1520 from Manishearth/rustup
[rust.git] / tests / ui / cast.rs
1 #![feature(plugin)]
2 #![plugin(clippy)]
3
4 #[deny(cast_precision_loss, cast_possible_truncation, cast_sign_loss, cast_possible_wrap)]
5 #[allow(no_effect, unnecessary_operation)]
6 fn main() {
7     // Test cast_precision_loss
8     1i32 as f32;
9     1i64 as f32;
10     1i64 as f64;
11     1u32 as f32;
12     1u64 as f32;
13     1u64 as f64;
14     1i32 as f64; // Should not trigger the lint
15     1u32 as f64; // Should not trigger the lint
16
17     // Test cast_possible_truncation
18     1f32 as i32;
19     1f32 as u32;
20
21     1f64 as f32;
22     1i32 as i8;
23     1i32 as u8;
24
25     1f64 as isize;
26     1f64 as usize;
27
28
29     // Test cast_possible_wrap
30     1u8 as i8;
31     1u16 as i16;
32     1u32 as i32;
33     1u64 as i64;
34     1usize as isize;
35
36     // Test cast_sign_loss
37     1i32 as u32;
38     1isize as usize;
39
40     // Extra checks for *size
41     // Casting from *size
42     1isize as i8;
43     1isize as f64;
44     1usize as f64;
45     1isize as f32;
46     1usize as f32;
47     1isize as i32;
48     1isize as u32;
49
50     1usize as u32;
51     1usize as i32;
52
53     // Casting to *size
54     1i64 as isize;
55     1i64 as usize;
56
57     1u64 as isize;
58
59     1u64 as usize;
60     1u32 as isize;
61     1u32 as usize; // Should not trigger any lint
62     1i32 as isize; // Neither should this
63     1i32 as usize;
64 }