Immutable immutable strings??

Timon Gehr timon.gehr at gmx.ch
Fri Feb 10 11:47:35 PST 2012


On 02/10/2012 07:10 PM, Marco Leise wrote:
> Am 10.02.2012, 19:07 Uhr, schrieb H. S. Teoh <hsteoh at quickfur.ath.cx>:
>
>> I'm not sure whether the following a compiler/language bug or a Phobos
>> bug, but it's definitely some kind of bug:
>>
>> auto s = "abc";
>> immutable t = "def";
>>
>> writeln(typeid(s)); // immutable(char)[]
>> writeln(typeid(t)); // immutable(immutable(char)[])
>> // (what is this supposed to mean?!)
>
> That is supposed to mean that you can neither modify the values of the
> characters in the array nor the array itself:

immutable(char[]) does already say that.

>
> t[1] = 'a'; // immutable(char)
> t.length = 2; // immutable(...[])

It is a runtime bug, and has been discussed before, but I am not sure if 
it has been filed (probably yes). A similar bug has recently been fixed 
for the compiler's internal formatting exposed through error 
messages/.stringof:

http://d.puremagic.com/issues/show_bug.cgi?id=6941


More information about the Digitalmars-d-learn mailing list