]> git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/checked_conversions.fixed
New upstream version 1.63.0+dfsg1
[rustc.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() {}