On 6/24/15 11:40 PM, Adam D. Ruppe wrote:
On Thursday, 25 June 2015 at 03:12:47 UTC, Steven Schveighoffer wrote:
A curious thing though. All the tests for things like:

assert(setExtension("file", "ext") == "file.ext");

do not trigger a call to eager.

But it passes? That's bizarre. (My dmd is apparently too old to compile
this, it segfaults when I try!)

Let me clarify this -- it does not spout the deprecation for those lines. I'm not sure exactly what the compiler is doing :) is there a good way to determine how the compiler is resolving the call?


assert(setExtension("file", "ext").array == "file.ext");

I did experience this in my proof-of-concept because I didn't implement
.length. So when array checked hasLength, it found it through the alias
this, which called eager.

Hm... it should only define length if the underlying strings satisfy hasLength. And AFAIK, strings and wstrings do not have length according to Phobos. I can do some asserts to check.

(That's also why I did a foreach loop instead
of just returning array(this). Well, that and the auto-decode nonsense,
but array would be a recursive call and stack overflow anyway).

I actaully followed Walter's example and used std.conv.to :)

These two things are weird, but I'm sure they're just bugs that we can
handle. In the morning, I'll try a git dmd and see if I can play with it
a little, right now I'm just guessing since it won't build on my current
setup.

I'm interested to hear how it goes!

-Steve

Reply via email to