error[E0596]: cannot borrow `f.v` as mutable, as `f` is not declared as mutable --> $DIR/issue-35937.rs:7:5 | LL | f.v.push("cat".to_string()); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot borrow as mutable | help: consider changing this to be mutable | LL | let mut f = Foo { v: Vec::new() }; | +++ error[E0594]: cannot assign to `s.x`, as `s` is not declared as mutable --> $DIR/issue-35937.rs:16:5 | LL | s.x += 1; | ^^^^^^^^ cannot assign | help: consider changing this to be mutable | LL | let mut s = S { x: 42 }; | +++ error[E0594]: cannot assign to `s.x`, as `s` is not declared as mutable --> $DIR/issue-35937.rs:20:5 | LL | s.x += 1; | ^^^^^^^^ cannot assign | help: consider changing this to be mutable | LL | fn bar(mut s: S) { | +++ error: aborting due to 3 previous errors Some errors have detailed explanations: E0594, E0596. For more information about an error, try `rustc --explain E0594`.