]> git.lizzy.rs Git - rust.git/blob - tests/ui/mut_reference.rs
Auto merge of #4478 - tsurai:master, r=flip1995
[rust.git] / tests / ui / mut_reference.rs
1 #![allow(unused_variables, clippy::trivially_copy_pass_by_ref)]
2
3 fn takes_an_immutable_reference(a: &i32) {}
4 fn takes_a_mutable_reference(a: &mut i32) {}
5
6 struct MyStruct;
7
8 impl MyStruct {
9     fn takes_an_immutable_reference(&self, a: &i32) {}
10
11     fn takes_a_mutable_reference(&self, a: &mut i32) {}
12 }
13
14 #[warn(clippy::unnecessary_mut_passed)]
15 fn main() {
16     // Functions
17     takes_an_immutable_reference(&mut 42);
18     let as_ptr: fn(&i32) = takes_an_immutable_reference;
19     as_ptr(&mut 42);
20
21     // Methods
22     let my_struct = MyStruct;
23     my_struct.takes_an_immutable_reference(&mut 42);
24
25     // No error
26
27     // Functions
28     takes_an_immutable_reference(&42);
29     let as_ptr: fn(&i32) = takes_an_immutable_reference;
30     as_ptr(&42);
31
32     takes_a_mutable_reference(&mut 42);
33     let as_ptr: fn(&mut i32) = takes_a_mutable_reference;
34     as_ptr(&mut 42);
35
36     let a = &mut 42;
37     takes_an_immutable_reference(a);
38
39     // Methods
40     my_struct.takes_an_immutable_reference(&42);
41     my_struct.takes_a_mutable_reference(&mut 42);
42     my_struct.takes_an_immutable_reference(a);
43 }