https://issues.dlang.org/show_bug.cgi?id=15882

[email protected] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |WORKSFORME

--- Comment #4 from [email protected] ---
Seems like phobos is ahead of us here.

----
void main()
{
    uint[] a = [0x8DA0000, 0x051B5A8, 0x67, 0x69, 0x74, 0x65, 0x63, 0x68];
    import std.stdio: writeln;
    writeln(cast(dchar[]) a);
}
----

Compiled with the freshly released dmd 2.071.0, this prints "��gitech", i.e. it
uses replacement characters now.

I think this is part of a change in the stance regarding invalid
char/wchar/dchar values. There used to be a guarantee/requirement that they do
not occur. Apparently, that has been given up in favor of a more forgiving
approach.

Since in dmd 2.071.0 it's working as you suggest, I'm closing this as
RESVOLED:WORKSFMORME. Feel free to reopen if I missed anything.

By the way, the generated hex string is broken. There should be lots of zero
bytes. I've filed a separate issue for that: issue 15888.

--

Reply via email to