|  | error[E0596]: cannot borrow `*a` as mutable, as it is behind a `&` reference | 
|  | --> $DIR/mut-arg-hint.rs:3:9 | 
|  | | | 
|  | LL |         a.push_str("bar"); | 
|  | |         ^ `a` is a `&` reference, so the data it refers to cannot be borrowed as mutable | 
|  | | | 
|  | help: consider changing this to be a mutable reference | 
|  | | | 
|  | LL |     fn foo(mut a: &mut String) { | 
|  | |                    +++ | 
|  |  | 
|  | error[E0596]: cannot borrow `*a` as mutable, as it is behind a `&` reference | 
|  | --> $DIR/mut-arg-hint.rs:8:5 | 
|  | | | 
|  | LL |     a.push_str("foo"); | 
|  | |     ^ `a` is a `&` reference, so the data it refers to cannot be borrowed as mutable | 
|  | | | 
|  | help: consider changing this to be a mutable reference | 
|  | | | 
|  | LL | pub fn foo<'a>(mut a: &'a mut String) { | 
|  | |                           +++ | 
|  |  | 
|  | error[E0596]: cannot borrow `*a` as mutable, as it is behind a `&` reference | 
|  | --> $DIR/mut-arg-hint.rs:15:9 | 
|  | | | 
|  | LL |         a.push_str("foo"); | 
|  | |         ^ `a` is a `&` reference, so the data it refers to cannot be borrowed as mutable | 
|  | | | 
|  | help: consider changing this to be a mutable reference | 
|  | | | 
|  | LL |     pub fn foo(mut a: &mut String) { | 
|  | |                        +++ | 
|  |  | 
|  | error: aborting due to 3 previous errors | 
|  |  | 
|  | For more information about this error, try `rustc --explain E0596`. |