Immutable array initialization in shared static this

Tommi tommitissari at hotmail.com
Sat Jul 14 02:33:11 PDT 2012


On Friday, 13 July 2012 at 18:09:59 UTC, Era Scarecrow wrote:
>  I would think the best solution is to create a mutable local 
> version, and then assign the immutable global one when you are 
> done.

Thanks for the workaround. But I'm actually more interested in 
whether or not this is a compiler bug or not, so that I could 
file a bug report. The following code makes me more certain that 
this in fact is a bug. Because in some sense there shouldn't be 
much difference between int and a fixed size int array of size 1:

module main;

import std.stdio;

immutable(int)    value;
immutable(int[1]) staticArray;

shared static this()
{
     value = 123;          // OK
     staticArray[0] = 123; // Error: staticArray[0] isn't mutable
}

int main(string args[])
{
     writeln(value);
     readln();
     return 0;
}




More information about the Digitalmars-d-learn mailing list