]> git.lizzy.rs Git - rust.git/blob - tests/ui/cast.rs
Split up casting UI tests
[rust.git] / tests / ui / cast.rs
1
2
3
4 #[warn(cast_precision_loss, cast_possible_truncation, cast_sign_loss, cast_possible_wrap, cast_lossless)]
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     // Test cast_possible_truncation
15     1f32 as i32;
16     1f32 as u32;
17     1f64 as f32;
18     1i32 as i8;
19     1i32 as u8;
20     1f64 as isize;
21     1f64 as usize;
22     // Test cast_possible_wrap
23     1u8 as i8;
24     1u16 as i16;
25     1u32 as i32;
26     1u64 as i64;
27     1usize as isize;
28     // Test cast_lossless with casts from floating-point types
29     1.0f32 as f64;
30     // Test cast_lossless with an expression wrapped in parens
31     (1u8 + 1u8) as u16;
32     // Test cast_sign_loss
33     1i32 as u32;
34     1isize as usize;
35     // Extra checks for *size
36     // Test cast_unnecessary
37     1i32 as i32;
38     1f32 as f32;
39     false as bool;
40     &1i32 as &i32;
41     // Should not trigger
42     let v = vec!(1);
43     &v as &[i32];
44     1.0 as f64;
45     1 as u64;
46 }