Ali Cehreli wrote:
Lars T. Kyllingstad Wrote:

I've tried with DMD 2.031, and I can't reproduce this. This works fine for me:

   int[2] static_0 = [ 1, 1 ]:
   int[2] static_1 = [ 1:1 ];

Where did you put the declarations? I've tried putting them at both module level and in a class, and both times it compiled without problems.

Thank you very much for both of your answers. :)

I hadn't realized that the location of the definitions would make a difference. 
As you say, both of the lines work for me in the global scope (probably in a 
class too), but not in main:

void main()
{
    int[2] static_0 = [ 1, 1 ];
    int[2] static_1 = [ 1:1 ];
}

dmd: init.c:431: virtual Expression* ArrayInitializer::toExpression(): Assertion 
`j < edim' failed.

I've added this to Bugzilla as bug 3246. With a patch <g>.

Reply via email to