See https://github.com/rust-lang/rust/issues/4330#issuecomment-26852226
The root problem, as I understand it, is that if you have fn drop(self)
, you somehow need to not Drop the self
the second time.
Like
fn foo(x: X) {
// calling drop here
}
impl DropByValue for X {
fn drop(self) {
foo(self); // what does this mean?
}
}