]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/unnecessary_cast.rs
New upstream version 1.63.0+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / unnecessary_cast.rs
CommitLineData
923072b8 1// run-rustfix
f20569fa 2#![warn(clippy::unnecessary_cast)]
923072b8
FG
3#![allow(
4 unused_must_use,
5 clippy::borrow_as_ptr,
6 clippy::no_effect,
7 clippy::nonstandard_macro_braces,
8 clippy::unnecessary_operation
9)]
f20569fa 10
5099ac24 11#[rustfmt::skip]
f20569fa
XL
12fn main() {
13 // Test cast_unnecessary
14 1i32 as i32;
15 1f32 as f32;
16 false as bool;
17 &1i32 as &i32;
18
5099ac24
FG
19 -1_i32 as i32;
20 - 1_i32 as i32;
21 -1f32 as f32;
22 1_i32 as i32;
23 1_f32 as f32;
24
f20569fa
XL
25 // macro version
26 macro_rules! foo {
27 ($a:ident, $b:ident) => {
28 #[allow(unused)]
29 pub fn $a() -> $b {
30 1 as $b
31 }
32 };
33 }
34 foo!(a, i32);
35 foo!(b, f32);
36 foo!(c, f64);
37
38 // do not lint cast to cfg-dependant type
39 1 as std::os::raw::c_char;
04454e1e
FG
40
41 // do not lint cast to alias type
42 1 as I32Alias;
43 &1 as &I32Alias;
f20569fa 44}
04454e1e
FG
45
46type I32Alias = i32;
923072b8
FG
47
48mod fixable {
49 #![allow(dead_code)]
50
51 fn main() {
52 // casting integer literal to float is unnecessary
53 100 as f32;
54 100 as f64;
55 100_i32 as f64;
56 let _ = -100 as f32;
57 let _ = -100 as f64;
58 let _ = -100_i32 as f64;
59 100. as f32;
60 100. as f64;
61 // Should not trigger
62 #[rustfmt::skip]
63 let v = vec!(1);
64 &v as &[i32];
65 0x10 as f32;
66 0o10 as f32;
67 0b10 as f32;
68 0x11 as f64;
69 0o11 as f64;
70 0b11 as f64;
71
72 1 as u32;
73 0x10 as i32;
74 0b10 as usize;
75 0o73 as u16;
76 1_000_000_000 as u32;
77
78 1.0 as f64;
79 0.5 as f32;
80
81 1.0 as u16;
82
83 let _ = -1 as i32;
84 let _ = -1.0 as f32;
85
86 let _ = 1 as I32Alias;
87 let _ = &1 as &I32Alias;
88 }
89
90 type I32Alias = i32;
91}