Here is a cut-down code sample that reproduces the error: // File A.d module A; import B; // File B.d module B; import A; class T(int i) { struct Inner { } } class B { T!(0) t; } void main() { } compilation options: # dmd A.d -c # dmd B.d -c # dmd A.obj B.obj Error 1: Previous Definition Different : _D1B9__T1TVi0Z1T5Inner6__initZ Note that this is a regression since D1.037/D2.021 used to compile this code just fine. Both D1.038 and D2.022 are affected. Could it be related to this one: http://d.puremagic.com/issues/show_bug.cgi?id=2500 (fixed recently)?
Maybe related to bug 1629 too: http://d.puremagic.com/issues/show_bug.cgi?id=1629 (error message is the same anyway)
This was a duplicate of bug 1629 and was fixed in DMD1.041. *** This issue has been marked as a duplicate of issue 1629 ***