// main.d ----
private import someClass;
private import std.stdio;
private template OneBadMixin() {
void theEvilFunction() {
assert (false);
}
}
void main()
{
auto x = new SomeClass;
x.goodFunc();
}
// ----
// someClass.d ----
private import main;
template BadMixinArgh() {
void goodFunc() {}
}
class SomeClass {
mixin BadMixinArgh;
mixin OneBadMixin;
}
// ----
sh-2.04$ dmd main.d someClass.d && ./main.exe
d:\coding\dmd\bin\..\..\dm\bin\link.exe main+someClass,,,user32+kernel32/noi;
Error: AssertError Failure main.d(7)
This bug has existed in D for more than a year. The previous reports used class-local imports, but the issue is exactly the same with mixins. Could we finally get a fix ? :(