digitalmars.D.learn - Is this a bug ?
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 ?
Oct 21 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 ~= [];`.
Oct 21 2016








ag0aep6g <anonymous example.com>