The following compilation error does not seem to make sense: $ cat test.d class C { string s = null; mixin template M() { } mixin M!() m1; // line 4 mixin template M(T) { } // line 5 mixin M!(int) m2; } $ dmd -c test test.d(1): Error: class test.C duplicated union initialization for s $ Interestingly, the file compiles without error if line 4 and 5 are swapped. Tested with DMD v2.048
Also, line 6 seems to have no influence, so the following still does not compile: class C { string s = null; mixin template M() { } mixin M!() m1; mixin template M(T) { } } On the other hand, when replacing "string s = null" by "int i = 0" it compiles without error.
Mass migration of bugs marked as x86-64 to just x86. The platform run on isn't what's relevant, it's if the app is a 32 or 64 bit app.
Compiles now.