On Wednesday, 25 November 2015 at 15:39:17 UTC, Daniel Murphy wrote:

What you're seeing is just an artifact of how dmd's internals work. 'std' is an 'import' (call Dsymbol.kind() for the category of symbol) and you'll have to resolve it to work out which module/package is being imported. It's possible that this is a bug in the symbol resolution, and that it should have already been resolved to a package.

Keep in mind also that isPackage and isModule are RTTI functions, and since Module inherits from Package all modules will appear to be packages if that's all you check.

That helps immensely! I'll play with that a bit.

As far as semantics go, if this were ever officially integrated into DMD, would it make sense for __traits(isModule, somePackage) to return false (unless it has a package.d) since the inheritance of Module from Package is basically a DMD implementation detail, or would it be better to just follow DMD's convention directly?

Reply via email to