Earlier quoted context omitted.
> I don't think Rust can notify on a failing destructor other than panic!ing. Much as in C++, this is not really allowed: drop runs during panic unwinding, a panic during a panic will hard-abort the entire program. > I don't know if there's an elegant way to solve this. I don't really think there is. Maybe opt-in linear types could be added. That would be at the cost of convenience (the compiler would require explici…
>Much as in C++, this is not really allowed: drop runs during panic unwinding, a panic during a panic will hard-abort the entire program. Right, I didn't really consider that a "drawback" because I'm in the camp that considers that panic! shouldn't unwind but actually abort the process here and there anyway. But you're right that if you rely on the default unwinding behavior panic!ing in destructors is a very bad ide…
You do rely on the default unwinding behavior anyway at least for `cargo test`: the test framework depends on being able to catch the unwinds from `assert_eq!` and similar.