]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/checked_conversions.fixed
Auto merge of #97931 - xldenis:fix-if-let-source-scopes, r=nagisa
[rust.git] / src / tools / clippy / tests / ui / checked_conversions.fixed
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
10 // Positive tests
11
12 // Signed to unsigned
13
14 pub fn i64_to_u32(value: i64) {
15     let _ = u32::try_from(value).is_ok();
16     let _ = u32::try_from(value).is_ok();
17 }
18
19 pub fn i64_to_u16(value: i64) {
20     let _ = u16::try_from(value).is_ok();
21     let _ = u16::try_from(value).is_ok();
22 }
23
24 pub fn isize_to_u8(value: isize) {
25     let _ = u8::try_from(value).is_ok();
26     let _ = u8::try_from(value).is_ok();
27 }
28
29 // Signed to signed
30
31 pub fn i64_to_i32(value: i64) {
32     let _ = i32::try_from(value).is_ok();
33     let _ = i32::try_from(value).is_ok();
34 }
35
36 pub fn i64_to_i16(value: i64) {
37     let _ = i16::try_from(value).is_ok();
38     let _ = i16::try_from(value).is_ok();
39 }
40
41 // Unsigned to X
42
43 pub fn u32_to_i32(value: u32) {
44     let _ = i32::try_from(value).is_ok();
45     let _ = i32::try_from(value).is_ok();
46 }
47
48 pub fn usize_to_isize(value: usize) {
49     let _ = isize::try_from(value).is_ok() && value as i32 == 5;
50     let _ = isize::try_from(value).is_ok() && value as i32 == 5;
51 }
52
53 pub fn u32_to_u16(value: u32) {
54     let _ = u16::try_from(value).is_ok() && value as i32 == 5;
55     let _ = u16::try_from(value).is_ok() && 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
74 // Do not lint
75 pub const fn issue_8898(i: u32) -> bool {
76     i <= i32::MAX as u32
77 }
78
79 fn main() {}