2014-11-14 23:14:52 +00:00
|
|
|
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);
|
2019-04-22 07:40:08 +00:00
|
|
|
//~^ ERROR assign of moved value: `t`
|
2014-11-14 23:14:52 +00:00
|
|
|
|
|
|
|
let mut t = Test3(None);
|
|
|
|
let u = Test;
|
|
|
|
drop(t);
|
|
|
|
t.0 = Some(u);
|
2019-04-22 07:40:08 +00:00
|
|
|
//~^ ERROR assign of moved value: `t`
|
2014-11-14 23:14:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
stuff()
|
|
|
|
}
|