]> git.lizzy.rs Git - rust.git/blob - tests/ui/mut_reference.rs
Merge pull request #2984 from flip1995/single_char_pattern
[rust.git] / tests / ui / mut_reference.rs
1
2
3
4 #![allow(unused_variables, trivially_copy_pass_by_ref)]
5
6 fn takes_an_immutable_reference(a: &i32) {}
7 fn takes_a_mutable_reference(a: &mut i32) {}
8
9 struct MyStruct;
10
11 impl 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)]
20 fn 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 }