Hm, all the examples in that issue seem to be code that would be meaningless/very tricky to make useful even if did compile, so maybe there’s something deeper going on. Maybe you could open a new thread here (or ask a question in the rust tag on stackoverflow) so you can get a bit more assistance?
Also, if by “technically unsafe” you mean memory unsafe (i.e. what the
unsafe keyword is used for, rather than a memory leak or something similar), then destructors aren’t reliable enough even if they didn’t ICE, e.g. creating a reference cycle with
Arc (or, more easily, the
std::mem::forget function) allows one to skip running a destructor in safe code. Something like
crossbeam::scope is needed to get guarantees.