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