| use std::ops::AddAssign; |
| |
| #[derive(Clone)] |
| struct Int(i32); |
| |
| impl AddAssign for Int { |
| fn add_assign(&mut self, _: Int) { |
| unimplemented!() |
| } |
| } |
| |
| fn main() { |
| let mut x = Int(1); //~ NOTE binding `x` declared here |
| x |
| //~^ NOTE borrow of `x` occurs here |
| += |
| x; |
| //~^ ERROR cannot move out of `x` because it is borrowed |
| //~| move out of `x` occurs here |
| |
| let y = Int(2); |
| //~^ HELP consider changing this to be mutable |
| //~| SUGGESTION mut |
| y //~ ERROR cannot borrow `y` as mutable, as it is not declared as mutable |
| //~| cannot borrow as mutable |
| += |
| Int(1); |
| } |