]>
Commit | Line | Data |
---|---|---|
f20569fa XL |
1 | // run-rustfix |
2 | ||
3 | #![allow(clippy::no_effect, clippy::unnecessary_operation, dead_code)] | |
4 | #![warn(clippy::cast_lossless)] | |
5 | ||
6 | fn main() { | |
7 | // Test clippy::cast_lossless with casts to integer types | |
8 | 1i8 as i16; | |
9 | 1i8 as i32; | |
10 | 1i8 as i64; | |
11 | 1u8 as i16; | |
12 | 1u8 as i32; | |
13 | 1u8 as i64; | |
14 | 1u8 as u16; | |
15 | 1u8 as u32; | |
16 | 1u8 as u64; | |
17 | 1i16 as i32; | |
18 | 1i16 as i64; | |
19 | 1u16 as i32; | |
20 | 1u16 as i64; | |
21 | 1u16 as u32; | |
22 | 1u16 as u64; | |
23 | 1i32 as i64; | |
24 | 1u32 as i64; | |
25 | 1u32 as u64; | |
26 | ||
27 | // Test with an expression wrapped in parens | |
28 | (1u8 + 1u8) as u16; | |
29 | } | |
30 | ||
31 | // The lint would suggest using `f64::from(input)` here but the `XX::from` function is not const, | |
32 | // so we skip the lint if the expression is in a const fn. | |
33 | // See #3656 | |
34 | const fn abc(input: u16) -> u32 { | |
35 | input as u32 | |
36 | } | |
37 | ||
38 | // Same as the above issue. We can't suggest `::from` in const fns in impls | |
39 | mod cast_lossless_in_impl { | |
40 | struct A; | |
41 | ||
42 | impl A { | |
43 | pub const fn convert(x: u32) -> u64 { | |
44 | x as u64 | |
45 | } | |
46 | } | |
47 | } |