]> git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/functions.rs
New upstream version 1.23.0+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / functions.rs
1
2
3
4 #![warn(clippy)]
5 #![allow(dead_code)]
6 #![allow(unused_unsafe)]
7
8 // TOO_MANY_ARGUMENTS
9 fn good(_one: u32, _two: u32, _three: &str, _four: bool, _five: f32, _six: f32, _seven: bool) {}
10
11 fn bad(_one: u32, _two: u32, _three: &str, _four: bool, _five: f32, _six: f32, _seven: bool, _eight: ()) {
12 }
13
14 // don't lint extern fns
15 extern fn extern_fn(_one: u32, _two: u32, _three: &str, _four: bool, _five: f32, _six: f32, _seven: bool, _eight: ()) {}
16
17 pub trait Foo {
18 fn good(_one: u32, _two: u32, _three: &str, _four: bool, _five: f32, _six: f32, _seven: bool);
19 fn bad(_one: u32, _two: u32, _three: &str, _four: bool, _five: f32, _six: f32, _seven: bool, _eight: ());
20
21 fn ptr(p: *const u8);
22 }
23
24 pub struct Bar;
25
26 impl Bar {
27 fn good_method(_one: u32, _two: u32, _three: &str, _four: bool, _five: f32, _six: f32, _seven: bool) {}
28 fn bad_method(_one: u32, _two: u32, _three: &str, _four: bool, _five: f32, _six: f32, _seven: bool, _eight: ()) {}
29 }
30
31 // ok, we don’t want to warn implementations
32 impl Foo for Bar {
33 fn good(_one: u32, _two: u32, _three: &str, _four: bool, _five: f32, _six: f32, _seven: bool) {}
34 fn bad(_one: u32, _two: u32, _three: &str, _four: bool, _five: f32, _six: f32, _seven: bool, _eight: ()) {}
35
36 fn ptr(p: *const u8) {
37 println!("{}", unsafe { *p });
38 println!("{:?}", unsafe { p.as_ref() });
39 unsafe { std::ptr::read(p) };
40 }
41 }
42
43 // NOT_UNSAFE_PTR_ARG_DEREF
44
45 fn private(p: *const u8) {
46 println!("{}", unsafe { *p });
47 }
48
49 pub fn public(p: *const u8) {
50 println!("{}", unsafe { *p });
51 println!("{:?}", unsafe { p.as_ref() });
52 unsafe { std::ptr::read(p) };
53 }
54
55 impl Bar {
56 fn private(self, p: *const u8) {
57 println!("{}", unsafe { *p });
58 }
59
60 pub fn public(self, p: *const u8) {
61 println!("{}", unsafe { *p });
62 println!("{:?}", unsafe { p.as_ref() });
63 unsafe { std::ptr::read(p) };
64 }
65
66 pub fn public_ok(self, p: *const u8) {
67 if !p.is_null() {
68 println!("{:p}", p);
69 }
70 }
71
72 pub unsafe fn public_unsafe(self, p: *const u8) {
73 println!("{}", unsafe { *p });
74 println!("{:?}", unsafe { p.as_ref() });
75 }
76 }
77
78 fn main() {}