digitalmars.D.bugs - [Issue 21337] New: join can iterates ranges multiple times
- d-bugmail puremagic.com (28/28) Oct 22 2020 https://issues.dlang.org/show_bug.cgi?id=21337
https://issues.dlang.org/show_bug.cgi?id=21337 Issue ID: 21337 Summary: join can iterates ranges multiple times Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nobody puremagic.com Reporter: rmanth gmail.com class Once { bool empty; void popFront() { empty = true; } int front() { return 0; } } void main() { import std.array : join; import std.algorithm.iteration : map; assert([1, 2].map!"[a]".join(new Once) == [1, 0, 2]); // fails } Join iterates `Once` once to make an array and again for each separator, which obviously doesn't work. --
Oct 22 2020