http://d.puremagic.com/issues/show_bug.cgi?id=8306
Summary: alias 'array' this consumes array on iteration Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: tob...@pankrath.net --- Comment #0 from Tobias Pankrath <tob...@pankrath.net> 2012-06-27 01:05:37 PDT --- Created an attachment (id=1121) code showing the bug The attached program produces buggy code. This code stores an index (a list of Agg*) to some Agg and prints all Agg currently in this index. Then it prints every Agg in turn. In the foreach loop every agg is empty. Which is wrong. It works however, if I comment out the alias content this; line or if I don't print the index before the loop. struct A { int a; int b; } struct Agg { A[] content; alias content this; } void main(string[] args) { Agg* agg = new Agg; A l1 = A((1), (2)); A l2 = A((2), (3)); A l3 = A((3), (4)); agg.content ~= [l1, l2, l3]; Agg*[] aggIndex = [agg]; writefln("these are the %s aggregates:\n%s", aggIndex.length, aggIndex); foreach(Agg* myAgg; aggIndex) { A[] as = (*myAgg).content; writefln("current agg %s with length %s", as, as.length); } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------