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 ~= [];`.

Reply via email to