Here's about the best I can do to reproduce this issue. It showed up in a monte carlo unittest of one of my associative array implementations that tested whether it gets the same answers as the builtin implementation. Probably some subtle memory corruption issue. import std.stdio, std.random, std.conv; void main() { // Monte carlo unit test builtin hash table. uint[uint] table; auto gen = Random(42); foreach(i; 0..1_000_000) { auto num1 = gen.front(); gen.popFront(); auto num2 = gen.front(); gen.popFront(); table[num1] = num2; } // Note that we're using the same seed again. gen = Random(42); foreach(i; 0..1_000_000) { auto num1 = gen.front(); gen.popFront(); auto num2 = gen.front(); gen.popFront(); assert(num1 in table); assert(table[num1] == num2); } }
Never mind. I filed this report in a hurry. While I still think something screwy is going on with the builtin AAs, this is not a valid way to reproduce it. Will file a new report when I have more time to look into the problem.