2013/4/23 Mehrdad <wfunction@hotmail.com>
On Monday, 22 April 2013 at 23:35:56 UTC, Flamaros wrote:
I started a project a month ago, and for the moment my feeling is just:
D can already be used as it.

Input:
        import std.stdio;
        struct S { string a; }
        pragma(msg,           S("x") == S("x".idup));
        void main() { writeln(S("x") == S("x".idup)); }

Output:
        true
        false

Nope, still broken.

This is mostly expected behavior. During compilation value identities are not guaranteed.
Because compile time evaluation is always done after constant folding, and constant folding would fold "x".idup to "x", then S("x") == S("x") is evaluated to true.

Kenji Hara