On Thu, 10 Mar 2011 07:50:21 -0500, bearophile <bearophileh...@lycos.com>
wrote:
Magnus Lie Hetland:
Derp. I didn't mean bool -- I was talking about byte. (Which should
make quite a bit more sense, given that I'm talking about a limit of
256... :D)
Please show a complete minimal program that gives you problem. (I have
failed to reproduce your problem on Windows).
void main()
{
auto a = new ubyte[256];
foreach(ubyte i, ref e; a) e = i;
}
I think you should file this as a bug Magnus, I see no reason why this
should result in an infinite loop.
Probably the reason is because the compiler rewrites this as:
for(ubyte i = 0; i < a.length; i++)
where what it should do is:
for(size_t _i = 0; _i < a.length; _i++)
{
auto i = cast(ubyte) _i;
...
}
or just fail to compile if you use anything that can't hold a size_t as an
index type.
-Steve