Destructor attribute inheritance, yea or nay?
Igor Shirkalin via Digitalmars-d
digitalmars-d at puremagic.com
Fri May 26 10:32:38 PDT 2017
On Friday, 26 May 2017 at 17:17:39 UTC, Stanislav Blinov wrote:
> Destructors of derived classes are called implicitly on
> finalization. The net effect is that such finalization adopts
> the weakest set of attributes among all the destructors it
> calls.
I'm sorry, I ment explicitly. I hope it is not possible.
>
> There are two sides of this problem: one is that we cannot have
> deterministic destruction (i.e. manually allocate/free classes)
> while keeping attribute inference: under current rules,
> finalization has to be @system. This one can be tackled if the
> language provided strict rules of attribute inheritance in
> destructors.
>
> Another side, clearly demonstrated by my second post, is that
> non-deterministic destruction cannot be @safe, period. Because
> when GC collects and calls destructors, it calls all of them,
> regardless of their @safe status, even when the collection is
> triggered inside a @safe function.
Doesn't that mean if compiler can't call inherited destructor
despite of GC it must be error?
More information about the Digitalmars-d
mailing list