--- Comment #2 from Don <> 2012-09-05 00:04:56 PDT ---
The dstring ICE is entirely spurious, the assert is wrong and should be

The situation with string is a completely unrelated bug; it's a
constant-folding issue. A string initialized with an array literal doesn't
support ~= of a 
character of a larger size. Here's a reduced case for that bug.

bool bug8601b()
    string r =  ['x', 'q'];
    dchar c = '�';
    r ~= c;
    assert(r == "xq�");
    return true;

static assert(bug8601b());

bug.d(8): Error: Cannot interpret r ~= c at compile time

This is interesting because an array literal containing multiple code point
characters cannot normally exist.
void main()
  string yyy = ['�', 'q']; // ok
string xxx = ['�', 'q'];  // fails
g.d(8): Error: cannot implicitly convert expression ('\xfc') of type wchar to

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to