Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.


Compiler implementation of the D programming language.

Source: dmodule.d

const(char)* lookForSourceFile(const(char)** path, const(char)* filename);
Look for the source file if it's different from filename. Look for .di, .d, directory, and along global.path. Does not open the file.

Output: path the path where the file was found if it was not the current directory

Input: filename as supplied by the user global.path

NULL if it's not different from filename.
class Package: ddmd.dsymbol.ScopeDsymbol;
static DsymbolTable resolve(Identifiers* packages, Dsymbol* pparent, Package* ppkg);

Input: packages[] the pkg1.pkg2 of pkg1.pkg2.mod

the symbol table that mod should be inserted into

Output: *pparent the rightmost package, i.e. pkg2, or NULL if no packages *ppkg the leftmost package, i.e. pkg1, or NULL if no packages

final const bool isAncestorPackageOf(const Package pkg);
Checks if pkg is a sub-package of this
For example, if this qualifies to 'a1.a2' and pkg - to 'a1.a2.a3', this function returns 'true'. If it is other way around or qualified package paths conflict function returns 'false'.
Package pkg possible subpackage
see description
class Module: ddmd.dmodule.Package;
bool selfImports();
Return true if module imports itself.
bool rootImports();
Return true if module imports root module.
File* setOutfile(const(char)* name, const(char)* dir, const(char)* arg, const(char)* ext);
Combines things into output file name for .html and .di files.

Input: name Command line name given for the file, NULL if none dir Command line directory given for the file, NULL if none arg Name of the source file ext File name extension to use if 'name' is NULL global.params.preservePaths get output path from arg srcfile Input file - output file name must not match input file

int needModuleInfo();
Determine if we need to generate an instance of ModuleInfo for this Module.
static void addDeferredSemantic(Dsymbol s);
Can't run semantic on s now, try again later.
static void runDeferredSemantic();
Run semantic() on deferred symbols.
int imports(Module m);
Recursively look at every module this module imports, return true if it imports m. Can be used to detect circular imports.
struct ModuleDeclaration;