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