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