...
========file
C.d:===========
module C;
import B; // just bring in class B from
B.d
Hmm. It seems viable but I'm sure there would be other issues to work
out. What if class B needs some "global" support declarations?
A workaround for now might be public imports.
========file A.d:===========
module A;
class B {}
...
========file
Stuff.d:===========
public import A.B;
...
========file
C.d:===========
module C;
import Stuff.B; // just bring in class B from
A.d, via public import in Stuff.d
I seem to recall D used to have this behavior by default, and private
imports were added to compensate. So this might still work, I haven't
checked. You could pull in everything you need into one big library
interface module, even though it actually lives in its own module in its own
file. But it requires such a library interface module. That's not
such a stiff requirement though, as this kind of thing would be mostly for
library work anyway.
Sean