Is this a bug ?

ag0aep6g via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Oct 21 10:10:08 PDT 2016


On 10/21/2016 06:55 PM, Basile B. wrote:
> This very simple stuff:
>
> class Item
> {
>     alias children this;
>     Item[] children;
>     void populate()
>     {
>         children ~= new Item;
>         assert(children.length == 1);
>     }
> }
>
> void main()
> {
>     Item root = new Item;
>     root.populate;
> }
>
> leads to an assertion failure. Am I too tired to see the error or do you
> think it's a bug ?

Bug. `alias this` is tried too eagerly.

What happens: The alias this of `new Item` is evaluated, leading to 
`children ~= [];`.


More information about the Digitalmars-d-learn mailing list