std.array string.split("") bug
H. S. Teoh
hsteoh at quickfur.ath.cx
Wed Aug 7 13:42:13 PDT 2013
On Wed, Aug 07, 2013 at 10:39:11PM +0200, John Colvin wrote:
> On Wednesday, 7 August 2013 at 19:10:11 UTC, Borislav Kosharov
> wrote:
> >Something strange happens when I do this:
> >
> >unittest {
> > import std.array, std.string;
> > string s = "test";
> > //assert(s.toUpper.split("").join("-") == "T-E-S-T");
> > //"Memory allocation failed"
> > //[Finished in 26.5s]
> > //CPU: 1% -> 50% | 2.7GHz dual core
> > //RAM: 1.6GB -> 2.6GB | 1GB diff
> > assert(s.split("") == ["t","e","s","t"]);
> > //ditto
> >}
> >
> >I just want to achieve what the commented assert's result should
> >be. Is there a better way to do that? And if it is really a bug
> >where should I report it?
>
> It's a bug in std.algorithm.splitter
>
> popFront doesn't actually pop anything at all when the separator is
> a "", so it just keeps iterating forever.
Not only so, .front doesn't return the first character either. I'm
looking into the code to see if I can fix it...
T
--
The two rules of success: 1. Don't tell everything you know. -- YHL
More information about the Digitalmars-d
mailing list