"Walter Bright" <newshou...@digitalmars.com> wrote in message news:hofb6v$h5...@digitalmars.com... > > This kind of misunderstanding comes up all the time, it's why having exact > reproducible snippets of code is so important! Often the critical detail > is something that was omitted because the person thought it was either > obvious or irrelevant.
Yea, normally I'm in the habit of doing that for that very reason. Figures it would bite me the one time I don't. Anyway, this is what I'm doing, and it's giving me a conflict error on the call to 'bar' in 'main' with DMD 1.056 (fortunately, however, it seems to work fine in 2.042, so I guess the situation's improved in D2): // -------- separateLibrary.d -------- module separateLibrary; string makeFooBar(string name) { return " enum "~name~" { foo } void bar("~name~" e) {} "; } mixin(makeFooBar("FooA")); // -------- appModule.d -------- module appModule; import separateLibrary; mixin(makeFooBar("FooB")); // -------- main.d -------- module main; import separateLibrary; import appModule; void main() { bar(FooB.foo); // Error! 'bar' conflict } Compiled with "rdmd main"