]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/mut_reference.rs
New upstream version 1.23.0+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / mut_reference.rs
CommitLineData
abe05a73
XL
1
2
ea8adc8c
XL
3
4#![allow(unused_variables)]
5
6fn takes_an_immutable_reference(a: &i32) {}
7fn takes_a_mutable_reference(a: &mut i32) {}
8
9struct MyStruct;
10
11impl MyStruct {
12 fn takes_an_immutable_reference(&self, a: &i32) {
13 }
14
15 fn takes_a_mutable_reference(&self, a: &mut i32) {
16 }
17}
18
19#[warn(unnecessary_mut_passed)]
20fn main() {
21 // Functions
22 takes_an_immutable_reference(&mut 42);
23 let as_ptr: fn(&i32) = takes_an_immutable_reference;
24 as_ptr(&mut 42);
25
26 // Methods
27 let my_struct = MyStruct;
28 my_struct.takes_an_immutable_reference(&mut 42);
29
30
31 // No error
32
33 // Functions
34 takes_an_immutable_reference(&42);
35 let as_ptr: fn(&i32) = takes_an_immutable_reference;
36 as_ptr(&42);
37
38 takes_a_mutable_reference(&mut 42);
39 let as_ptr: fn(&mut i32) = takes_a_mutable_reference;
40 as_ptr(&mut 42);
41
42 let a = &mut 42;
43 takes_an_immutable_reference(a);
44
45 // Methods
46 my_struct.takes_an_immutable_reference(&42);
47 my_struct.takes_a_mutable_reference(&mut 42);
48 my_struct.takes_an_immutable_reference(a);
49}