about summary refs log tree commit diff
path: root/tests/ui/borrowck/ownership-struct-update-moved-error.rs
blob: 62fc1f42969f4ab00b0381a5a1985afa891256a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//! 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`
}