]> git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/forget_ref.rs
New upstream version 1.63.0+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / forget_ref.rs
1 #![warn(clippy::forget_ref)]
2 #![allow(clippy::toplevel_ref_arg)]
3 #![allow(clippy::unnecessary_wraps, clippy::forget_non_drop)]
4 #![allow(clippy::borrow_deref_ref)]
5
6 use std::mem::forget;
7
8 struct SomeStruct;
9
10 fn main() {
11 forget(&SomeStruct);
12
13 let mut owned = SomeStruct;
14 forget(&owned);
15 forget(&&owned);
16 forget(&mut owned);
17 forget(owned); //OK
18
19 let reference1 = &SomeStruct;
20 forget(&*reference1);
21
22 let reference2 = &mut SomeStruct;
23 forget(reference2);
24
25 let ref reference3 = SomeStruct;
26 forget(reference3);
27 }
28
29 #[allow(dead_code)]
30 fn test_generic_fn_forget<T>(val: T) {
31 forget(&val);
32 forget(val); //OK
33 }
34
35 #[allow(dead_code)]
36 fn test_similarly_named_function() {
37 fn forget<T>(_val: T) {}
38 forget(&SomeStruct); //OK; call to unrelated function which happens to have the same name
39 std::mem::forget(&SomeStruct);
40 }
41
42 #[derive(Copy, Clone)]
43 pub struct Error;
44 fn produce_half_owl_error() -> Result<(), Error> {
45 Ok(())
46 }
47
48 fn produce_half_owl_ok() -> Result<bool, ()> {
49 Ok(true)
50 }