//! 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` }