The following unit test fails (i == 2): unittest { import std.array; import std.random; import std.range; int someFun() { return uniform(0, 2000); } int i = 0; const arr = generate!(() { ++i; return someFun(); }).take(1).array; assert(arr.length == 1); assert(i == 1, "generate called fun more than once"); }
DMD64 D Compiler v2.099.1 (Linux x86_64)
*** This issue has been marked as a duplicate of issue 19587 ***