| struct Test; | |
| struct Test2 { | |
| b: Option<Test>, | |
| } | |
| struct Test3(Option<Test>); | |
| impl Drop for Test { | |
| fn drop(&mut self) { | |
| println!("dropping!"); | |
| } | |
| } | |
| impl Drop for Test2 { | |
| fn drop(&mut self) {} | |
| } | |
| impl Drop for Test3 { | |
| fn drop(&mut self) {} | |
| } | |
| fn stuff() { | |
| let mut t = Test2 { b: None }; | |
| let u = Test; | |
| drop(t); | |
| t.b = Some(u); | |
| //~^ ERROR assign of moved value: `t` | |
| let mut t = Test3(None); | |
| let u = Test; | |
| drop(t); | |
| t.0 = Some(u); | |
| //~^ ERROR assign of moved value: `t` | |
| } | |
| fn main() { | |
| stuff() | |
| } |