On Wednesday, 1 July 2015 at 09:09:53 UTC, aki wrote:
Following code causes run-time error.
How can I use static this() without causing error?
It's difficult to avoid this situation because
actual code is more complex.

file main.d:
void main() {
}

file a.d:
import b;
class A {
        static this() {}
};

file b.d:
import a;
class B {
        static this() {}
};

object.Exception@src\rt\minfo.d(162): Aborting: Cycle detected between modules w
ith ctors/dtors:
a -> b -> a

An ugly solution, but the approach used in Phobos is to create something like a_init.d which a.d imports, provided that the static ctors don't actually rely on things from the static ctor of b.

Reply via email to