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