]>
Commit | Line | Data |
---|---|---|
f20569fa XL |
1 | // run-rustfix |
2 | ||
3 | #![allow( | |
4 | clippy::cast_lossless, | |
5 | // Int::max_value will be deprecated in the future | |
6 | deprecated, | |
7 | )] | |
8 | #![warn(clippy::checked_conversions)] | |
9 | ||
f20569fa XL |
10 | // Positive tests |
11 | ||
12 | // Signed to unsigned | |
13 | ||
14 | pub fn i64_to_u32(value: i64) { | |
15 | let _ = value <= (u32::max_value() as i64) && value >= 0; | |
16 | let _ = value <= (u32::MAX as i64) && value >= 0; | |
17 | } | |
18 | ||
19 | pub fn i64_to_u16(value: i64) { | |
20 | let _ = value <= i64::from(u16::max_value()) && value >= 0; | |
21 | let _ = value <= i64::from(u16::MAX) && value >= 0; | |
22 | } | |
23 | ||
24 | pub fn isize_to_u8(value: isize) { | |
25 | let _ = value <= (u8::max_value() as isize) && value >= 0; | |
26 | let _ = value <= (u8::MAX as isize) && value >= 0; | |
27 | } | |
28 | ||
29 | // Signed to signed | |
30 | ||
31 | pub fn i64_to_i32(value: i64) { | |
32 | let _ = value <= (i32::max_value() as i64) && value >= (i32::min_value() as i64); | |
33 | let _ = value <= (i32::MAX as i64) && value >= (i32::MIN as i64); | |
34 | } | |
35 | ||
36 | pub fn i64_to_i16(value: i64) { | |
37 | let _ = value <= i64::from(i16::max_value()) && value >= i64::from(i16::min_value()); | |
38 | let _ = value <= i64::from(i16::MAX) && value >= i64::from(i16::MIN); | |
39 | } | |
40 | ||
41 | // Unsigned to X | |
42 | ||
43 | pub fn u32_to_i32(value: u32) { | |
44 | let _ = value <= i32::max_value() as u32; | |
45 | let _ = value <= i32::MAX as u32; | |
46 | } | |
47 | ||
48 | pub fn usize_to_isize(value: usize) { | |
49 | let _ = value <= isize::max_value() as usize && value as i32 == 5; | |
50 | let _ = value <= isize::MAX as usize && value as i32 == 5; | |
51 | } | |
52 | ||
53 | pub fn u32_to_u16(value: u32) { | |
54 | let _ = value <= u16::max_value() as u32 && value as i32 == 5; | |
55 | let _ = value <= u16::MAX as u32 && value as i32 == 5; | |
56 | } | |
57 | ||
58 | // Negative tests | |
59 | ||
60 | pub fn no_i64_to_i32(value: i64) { | |
61 | let _ = value <= (i32::max_value() as i64) && value >= 0; | |
62 | let _ = value <= (i32::MAX as i64) && value >= 0; | |
63 | } | |
64 | ||
65 | pub fn no_isize_to_u8(value: isize) { | |
66 | let _ = value <= (u8::max_value() as isize) && value >= (u8::min_value() as isize); | |
67 | let _ = value <= (u8::MAX as isize) && value >= (u8::MIN as isize); | |
68 | } | |
69 | ||
70 | pub fn i8_to_u8(value: i8) { | |
71 | let _ = value >= 0; | |
72 | } | |
73 | ||
923072b8 FG |
74 | // Do not lint |
75 | pub const fn issue_8898(i: u32) -> bool { | |
76 | i <= i32::MAX as u32 | |
77 | } | |
78 | ||
f20569fa | 79 | fn main() {} |