On Wednesday, 26 July 2017 at 02:58:00 UTC, Mike Parker wrote:
Internally, the runtime will treat each differently. an
rt_destruct would call all every __dtor in a hierarchy and
rt_finalize would be changed to call every __finalizer (a new
addition) in a hierarchy. When cleaning up, the GC will ensure
that all destructors are run where they exist, followed by all
finalizers. And destroy would be changed to call rt_destruct
instead of rt_finalize.
Thoughts?
And an important bit I left out -- destroy would still call
rt_finalize if no destructor is present, which would preserve
current behavior.