Thanks for reading!
On Thursday, 10 November 2016 at 06:08:22 UTC, thedeemon wrote:
This is the schizophrenic part of D, since allocations inside
destructors are not allowed by its own runtime and cause
immediate stop of the program.
But this restriction is only there when called by the GC. If you
have GC and a deterministic object graph, it can be completely
safe to allocate in destructor.
I feel this is a separate problem, "GC calling destructors".
And exceptions in destructors should not be allowed: there is
no sane place to catch and handle exceptions arising during the
GC phase (which can be triggered by arbitrary allocation
anywhere in the code), so if we can't reason about them and
handle them we shouldn't allow them.