In the past few months working on my little hobby project I came across many bugs, and almost all of them are connected to structs in one or the other way. So I made a list of all the bugs that affected me and are connected to structs:

Destruction of uninitialized temporary struct with assert - http://d.puremagic.com/issues/show_bug.cgi?id=8360

@disable this propagates through reference - http://d.puremagic.com/issues/show_bug.cgi?id=8296

Struct member destructor can not be called from shared struct instance - http://d.puremagic.com/issues/show_bug.cgi?id=8295

__postblit and __dtor on structs only work if they are explicitly defined (no ticket yet)

Struct destructor is not called on out parameter - http://d.puremagic.com/issues/show_bug.cgi?id=6186

_d_arraycopy should take TypeInfo as final argument instead of simply element size - http://d.puremagic.com/issues/show_bug.cgi?id=6182

Copy constructor and templated opAssign cannot coexist - http://d.puremagic.com/issues/show_bug.cgi?id=4424

Calling struct.init causes a memory allocation. - http://d.puremagic.com/issues/show_bug.cgi?id=7271 (the only one fixed so far)

Structs with disabled default constructors can be constructed without calling a constructor. - http://d.puremagic.com/issues/show_bug.cgi?id=7021

And those are only the bugs that affected me, there are countless more in the bug tracker.

I wanted to suggest that one developement cycle is spend on fixing as many of the struct connected bugs as possible. Structs are a really important language feature that also often is supposed to be used as a replacement for deperecated features (scope, typedef, ...)

Kind Regards
Benjamin Thaut

Reply via email to