]> git.proxmox.com Git - rustc.git/blame - 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
CommitLineData
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
14pub fn i64_to_u32(value: i64) {
15 let _ = u32::try_from(value).is_ok();
16 let _ = u32::try_from(value).is_ok();
17}
18
19pub fn i64_to_u16(value: i64) {
20 let _ = u16::try_from(value).is_ok();
21 let _ = u16::try_from(value).is_ok();
22}
23
24pub 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
31pub fn i64_to_i32(value: i64) {
32 let _ = i32::try_from(value).is_ok();
33 let _ = i32::try_from(value).is_ok();
34}
35
36pub 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
43pub fn u32_to_i32(value: u32) {
44 let _ = i32::try_from(value).is_ok();
45 let _ = i32::try_from(value).is_ok();
46}
47
48pub 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
53pub 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
60pub 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
65pub 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
70pub fn i8_to_u8(value: i8) {
71 let _ = value >= 0;
72}
73
923072b8
FG
74// Do not lint
75pub const fn issue_8898(i: u32) -> bool {
76 i <= i32::MAX as u32
77}
78
f20569fa 79fn main() {}