AA literals/initialisation

simendsjo simendsjo at gmail.com
Mon Nov 11 00:33:57 PST 2013


On Monday, 11 November 2013 at 08:30:32 UTC, Manu wrote:
> immutable string[string] priorityMap = [
> "1" : "blocker",
> "2" : "critical",
> "3" : "critical",
> "4" : "major",
> "5" : "major",
> "6" : "major",
> "7" : "minor",
> "8" : "minor",
> "9" : "trivial" ];
>
> main.d(56): Error: non-constant expression ["1":"blocker", 
> "2":"critical",
> "3":"critical", "4":"major", "5":"major", "6":"major", 
> "7":"minor",
> "8":"minor", "9":"trivial"]
>
> This is tedious, how long has it been now?
> Seriously, static map's are super-important, they should be 
> able to be made
> immutable, and also be able to be initialised.
>
> Maybe this could be factored into the improvements for 2.065?

The workaround is simple at global scope, but I agree it clutters 
the code:

   immutable string[string] priorityMap;
   shared static this() {
       priorityMap = [
       "1" : "blocker",
       "2" : "critical",
       "3" : "critical",
       "4" : "major",
       "5" : "major",
       "6" : "major",
       "7" : "minor",
       "8" : "minor",
       "9" : "trivial" ];
   }


More information about the Digitalmars-d mailing list