"Walter Bright" <[email protected]> wrote in message
news:[email protected]...
>
> 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"