std.array string.split("") bug
H. S. Teoh
hsteoh at quickfur.ath.cx
Wed Aug 7 13:53:50 PDT 2013
On Wed, Aug 07, 2013 at 01:42:13PM -0700, H. S. Teoh wrote:
> 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...
[...]
Fixed:
https://github.com/D-Programming-Language/phobos/pull/1456
T
--
Being able to learn is a great learning; being able to unlearn is a greater learning.
More information about the Digitalmars-d
mailing list