]> git.lizzy.rs Git - rust.git/blob - tests/ui/checked_conversions.fixed
Auto merge of #9919 - Alexendoo:configuration-link, r=xFrednet
[rust.git] / tests / ui / checked_conversions.fixed
1 // run-rustfix
2
3 #![allow(
4     clippy::cast_lossless,
5     unused,
6     // Int::max_value will be deprecated in the future
7     deprecated,
8 )]
9 #![warn(clippy::checked_conversions)]
10
11 // Positive tests
12
13 // Signed to unsigned
14
15 pub fn i64_to_u32(value: i64) {
16     let _ = u32::try_from(value).is_ok();
17     let _ = u32::try_from(value).is_ok();
18 }
19
20 pub fn i64_to_u16(value: i64) {
21     let _ = u16::try_from(value).is_ok();
22     let _ = u16::try_from(value).is_ok();
23 }
24
25 pub fn isize_to_u8(value: isize) {
26     let _ = u8::try_from(value).is_ok();
27     let _ = u8::try_from(value).is_ok();
28 }
29
30 // Signed to signed
31
32 pub fn i64_to_i32(value: i64) {
33     let _ = i32::try_from(value).is_ok();
34     let _ = i32::try_from(value).is_ok();
35 }
36
37 pub fn i64_to_i16(value: i64) {
38     let _ = i16::try_from(value).is_ok();
39     let _ = i16::try_from(value).is_ok();
40 }
41
42 // Unsigned to X
43
44 pub fn u32_to_i32(value: u32) {
45     let _ = i32::try_from(value).is_ok();
46     let _ = i32::try_from(value).is_ok();
47 }
48
49 pub fn usize_to_isize(value: usize) {
50     let _ = isize::try_from(value).is_ok() && value as i32 == 5;
51     let _ = isize::try_from(value).is_ok() && value as i32 == 5;
52 }
53
54 pub fn u32_to_u16(value: u32) {
55     let _ = u16::try_from(value).is_ok() && value as i32 == 5;
56     let _ = u16::try_from(value).is_ok() && value as i32 == 5;
57 }
58
59 // Negative tests
60
61 pub fn no_i64_to_i32(value: i64) {
62     let _ = value <= (i32::max_value() as i64) && value >= 0;
63     let _ = value <= (i32::MAX as i64) && value >= 0;
64 }
65
66 pub fn no_isize_to_u8(value: isize) {
67     let _ = value <= (u8::max_value() as isize) && value >= (u8::min_value() as isize);
68     let _ = value <= (u8::MAX as isize) && value >= (u8::MIN as isize);
69 }
70
71 pub fn i8_to_u8(value: i8) {
72     let _ = value >= 0;
73 }
74
75 // Do not lint
76 pub const fn issue_8898(i: u32) -> bool {
77     i <= i32::MAX as u32
78 }
79
80 #[clippy::msrv = "1.33"]
81 fn msrv_1_33() {
82     let value: i64 = 33;
83     let _ = value <= (u32::MAX as i64) && value >= 0;
84 }
85
86 #[clippy::msrv = "1.34"]
87 fn msrv_1_34() {
88     let value: i64 = 34;
89     let _ = u32::try_from(value).is_ok();
90 }
91
92 fn main() {}