On Friday, 17 November 2017 at 06:57:16 UTC, Michael V. Franklin wrote:
Actually, it looks like it's this 4-year old bug. https://issues.dlang.org/show_bug.cgi?id=9506

Yeah, I suspected this is old and my comment in there still applies...

It passes the isInputRange test due to the implicit conversion of alias this, and then writeln takes it and consumes it.

One thing you might consider is making the alias this go to a getter property instead of the method directly. Then operations on it will work on a copy of the slice, and thus not consume the original one. But then you can't do stuff like append do it directly either...

imo writeln should check for .save and use it. But meh I don't care to personally bother fixing it and apparently nobody else does either.

Reply via email to