]> git.lizzy.rs Git - rust.git/blob - tests/ui/cast.rs
Move all our tests back to ui tests
[rust.git] / tests / ui / cast.rs
1 #![feature(plugin)]
2 #![plugin(clippy)]
3
4 #[warn(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     // Test cast_possible_truncation
17     1f32 as i32;
18     1f32 as u32;
19     1f64 as f32;
20     1i32 as i8;
21     1i32 as u8;
22     1f64 as isize;
23     1f64 as usize;
24     // Test cast_possible_wrap
25     1u8 as i8;
26     1u16 as i16;
27     1u32 as i32;
28     1u64 as i64;
29     1usize as isize;
30     // Test cast_sign_loss
31     1i32 as u32;
32     1isize as usize;
33     // Extra checks for *size
34     // Casting from *size
35     1isize as i8;
36     1isize as f64;
37     1usize as f64;
38     1isize as f32;
39     1usize as f32;
40     1isize as i32;
41     1isize as u32;
42     1usize as u32;
43     1usize as i32;
44     // Casting to *size
45     1i64 as isize;
46     1i64 as usize;
47     1u64 as isize;
48     1u64 as usize;
49     1u32 as isize;
50     1u32 as usize; // Should not trigger any lint
51     1i32 as isize; // Neither should this
52     1i32 as usize;
53     // Test cast_unnecessary
54     1i32 as i32;
55     1f32 as f32;
56     false as bool;
57     &1i32 as &i32;
58     // Should not trigger
59     1i32 as i64;
60     let v = vec!(1);
61     &v as &[i32];
62     1.0 as f64;
63     1 as u64;
64 }