error[E0596]: cannot borrow immutable argument `arg` as mutable --> $DIR/borrowck-argument.rs:10:5 | LL | fn func(arg: S) { | --- help: make this binding mutable: `mut arg` LL | arg.mutate(); //~ ERROR: cannot borrow immutable argument | ^^^ cannot borrow mutably error[E0596]: cannot borrow immutable argument `arg` as mutable --> $DIR/borrowck-argument.rs:15:9 | LL | fn method(&self, arg: S) { | --- help: make this binding mutable: `mut arg` LL | arg.mutate(); //~ ERROR: cannot borrow immutable argument | ^^^ cannot borrow mutably error[E0596]: cannot borrow immutable argument `arg` as mutable --> $DIR/borrowck-argument.rs:21:9 | LL | fn default(&self, arg: S) { | --- help: make this binding mutable: `mut arg` LL | arg.mutate(); //~ ERROR: cannot borrow immutable argument | ^^^ cannot borrow mutably error[E0596]: cannot borrow immutable argument `arg` as mutable --> $DIR/borrowck-argument.rs:32:17 | LL | (|arg: S| { arg.mutate() })(s); //~ ERROR: cannot borrow immutable argument | --- ^^^ cannot borrow mutably | | | help: make this binding mutable: `mut arg` error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0596`.