On Friday, February 15, 2013 20:14:41 Ali Çehreli wrote: > On 02/15/2013 07:50 PM, Jeremy DeHaan wrote: > > I know that a module can only be defined once, but I feel like there > > could be times where it would be helpful to be able to have the same > > module defined in separate files > > There may be other ways of achieving that and I haven't given much > thought to your question but there is also the import expression: > > http://dlang.org/expression.html#ImportExpression > > If needed, you can include D files similar to C's #include: > > mixin (import ("part_of_my_module.d")); > mixin (import ("another_part_of_my_module.d"));
You can play games like this if you really want to, but in general, it should be kept in mind that modules in D are designed to have a one-to-one correspondance with files, and packages are designed to have a one-to-one correspondance with directories. And in general, fighting that is just going to cause trouble and confusion. That doesn't necessarily mean that it should never be done, but in most cases, it would be far better to just reorganize your code so that it's not necessary. Also, AFAIK, mixing in imports is a very rare thing to do, so for the most part, people won't be expecting it, and it will likely cause maintenance issues for anyone else working on your project. What is more typically done when you need to split stuff up is to use internal modules which are only imported internally and are not presented as part of the public API, but even that isn't terribly common, I don't think (but unlike mixing in imports, it's something that the standard library actually does in a few places). - Jonathan M Davis
