This D2 program compiles with no errors: void delegate()[1] foo; void main() { int n; foo[0] = { n++; }; } But this one: void delegate()[1] foo; void main() { int n; foo[] = [{ n++; }]; } With DMD 2.051: test.d(4): Error: cannot implicitly convert expression ([delegate void() { n++; } ]) of type void delegate()[] to const(void delegate()[]) It looks like a front-end bug.
Probably fixed with the other delegate conversion bugs.