Closed
Description
foo.drop()
currently errors with explicit call to destructor
, which is good, but the error does not fire for UFCS-style Drop::drop(&mut foo)
calls, leading to the ability to call a value’s destructor more than once:
struct Bass;
impl Drop for Bass {
fn drop(&mut self) {
println!("D-D-D-D-DROP THE BASS");
}
}
fn main() {
let mut bass = Bass;
Drop::drop(&mut bass);
Drop::drop(&mut bass);
Drop::drop(&mut bass);
}