]> git.lizzy.rs Git - rust.git/blob - tests/ui/fn_to_numeric_cast.rs
Reimplement the `fn_to_numeric_cast` lint
[rust.git] / tests / ui / fn_to_numeric_cast.rs
1 #![feature(tool_lints)]
2
3 #[warn(clippy::fn_to_numeric_cast)]
4
5 fn foo() -> String { String::new() }
6
7 fn test_function_to_numeric_cast() {
8     let _ = foo as i8;
9     let _ = foo as i16;
10     let _ = foo as i32;
11     let _ = foo as i64;
12     let _ = foo as i128;
13     let _ = foo as isize;
14
15     let _ = foo as u8;
16     let _ = foo as u16;
17     let _ = foo as u32;
18     let _ = foo as u64;
19     let _ = foo as u128;
20
21     // Casting to usize is OK and should not warn
22     let _ = foo as usize;
23 }
24
25 fn test_function_var_to_numeric_cast() {
26     let abc: fn() -> String = foo;
27
28     let _ = abc as i8;
29     let _ = abc as i16;
30     let _ = abc as i32;
31     let _ = abc as i64;
32     let _ = abc as i128;
33     let _ = abc as isize;
34
35     let _ = abc as u8;
36     let _ = abc as u16;
37     let _ = abc as u32;
38     let _ = abc as u64;
39     let _ = abc as u128;
40
41     // Casting to usize is OK and should not warn
42     let _ = abc as usize;
43 }
44
45 fn fn_with_fn_args(f: fn(i32) -> i32) -> i32 {
46     f as i32
47 }
48
49 fn main() {}