// https://issues.dlang.org/show_bug.cgi?id=16140 int fun() { static int count = 0; if (count == 3) { count = 0; return 0; } ++count; return count; } void main() { uint[] res; while(auto value = fun()) res ~= value; assert(res == [1, 2, 3]); res.length = 0; while(uint value = fun()) res ~= value; assert(res == [1, 2, 3]); res.length = 0; while(const value = fun()) res ~= value; assert(res == [1, 2, 3]); }