GC being too eager?

monarch_dodra monarchdodra at gmail.com
Fri Apr 11 05:33:24 PDT 2014


On Friday, 11 April 2014 at 12:26:14 UTC, Steven Schveighoffer 
wrote:
> This is a side effect of classes being first-class reference 
> types. Array needs to call destroy on structs, but not on 
> classes. Sort of a "shallow destroy."
>
> It's an interesting bug.
>
> -Steve

Yeah, the issue "transcends" the language. Things like 
"FieldTypeTuple" on a class (directly) also tell you what the 
class is made of.

Ideally, the call should have been "protected" by a 
"hasElaborateDestructor" to begin with. Not only does it make the 
code faster for types that don't have destructors, 
"hasElaborateDestructor" replies false for classes.

User @denis-sh had complained about "destroy" before for this 
very reason, and had proposed a "destruct":
https://github.com/D-Programming-Language/phobos/pull/929


More information about the Digitalmars-d-learn mailing list