]> git.lizzy.rs Git - rust.git/blob - tests/ui/functions.rs
Merge remote-tracking branch 'upstream/master' into prs
[rust.git] / tests / ui / functions.rs
1 #![feature(tool_lints)]
2
3
4 #![warn(clippy::all)]
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() {}