| //! Checks borrow after move error when using `self` consuming method with struct update syntax. | |
| struct Mine { | |
| test: String, | |
| other_val: isize, | |
| } | |
| impl Mine { | |
| fn make_string_bar(mut self) -> Mine { | |
| self.test = "Bar".to_string(); | |
| self | |
| } | |
| } | |
| fn main() { | |
| let start = Mine { test: "Foo".to_string(), other_val: 0 }; | |
| let end = Mine { other_val: 1, ..start.make_string_bar() }; | |
| println!("{}", start.test); //~ ERROR borrow of moved value: `start` | |
| } |