Basically, it's now possible to write:
struct Foo { a: int };
impl Drop for Foo { fn drop(&mut self) { } }
impl Copy for Foo { }
and have everything work. This unfortunately means that doing something like let a = b
with a Foo
will zero b, but not move it.
/cc @nikomatsakis @pcwalton