std.algorithm.map + std.algorithm.joiner = broken forward range
H. S. Teoh
hsteoh at quickfur.ath.cx
Tue Oct 9 20:28:19 PDT 2012
On Wed, Oct 10, 2012 at 05:00:00AM +0200, jerro wrote:
> On Wednesday, 10 October 2012 at 02:11:49 UTC, H. S. Teoh wrote:
> >Code:
> > import std.algorithm;
> > import std.range;
> > import std.stdio;
> >
> > void main() {
> > auto x = [[1],[2],[3]];
> > auto yy = x.map!"a".joiner;
> >
> > assert(isForwardRange!(typeof(yy)));
> > writeln(yy.save);
> > writeln(yy);
> > }
> >
> >Output:
> >
> > []
> > [1, 2, 3]
> >
> >:-(
> >
> >That is to say, yy.save didn't save the range at all!
> >
> >
> >T
>
> It happens without map too.
You're right, it's a joiner bug, nothing to do with map. Filed new
issue:
http://d.puremagic.com/issues/show_bug.cgi?id=8792
T
--
"Uhh, I'm still not here." -- KD, while "away" on ICQ.
More information about the Digitalmars-d
mailing list