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.


Defines a package and module.

Specification Modules


Source dmodule.d

nothrow void removeHdrFilesAndFail(ref Param params, ref Modules modules);
Remove generated .di files on error and exit
class Package: dmd.dsymbol.ScopeDsymbol;
static DsymbolTable resolve(Identifier[] 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
final void resolvePKGunknown();
Checks for the existence of a package.d to set isPkgMod appropriately if isPkgMod == PKG.unknown
class Module: dmd.dmodule.Package;
static void deinitialize();
Deinitializes the global state of the compiler.
This can be used to restore the state set by _init to its original state.
const(ubyte)[] src;
Raw content of the file
Dsymbol[void*] tagSymTab;

ImportC tag symbols that conflict with other symbols used as the index

bool selfImports();
Return true if module imports itself.
bool rootImports();
Return true if module imports root module.
Module importedFrom;
A root module is one that will be compiled all the way to object code. This field holds the root module that caused this module to be loaded. If this module is a root module, then it will be set to this. This is used to determine ownership of template instantiation.
FileName setOutfilename(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

bool read(const ref Loc loc);
Reads the file from srcfile and loads the source buffer.
If makefile module dependency is requested, we add this module to the list of dependencies from here.
Loc loc the location
true if successful
Module parse();

Module parseModule(AST)();
syntactic parse
int needModuleInfo();
Determine if we need to generate an instance of ModuleInfo for this Module.
void checkImportDeprecation(const ref Loc loc, Scope* sc);
Print deprecation warning if we're deprecated, when this module is imported from scope sc.
Scope* sc the scope into which we are imported
Loc loc the location of the import statement
static void addDeferredSemantic(Dsymbol s);
Can't run semantic on s now, try again later.
static void runDeferredSemantic();
Run semantic() on deferred symbols.
nothrow 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.
nothrow bool isCoreModule(Identifier ident);
Whether this module is in the core package and has name ident
uint[uint] ctfe_cov;
coverage information from ctfe execution_count[line]
nothrow void fullyQualifiedName(ref OutBuffer buf);
Writes this module's fully-qualified name to buf
OutBuffer buf The buffer to write to
nothrow Escape* escapetable();
Lazily initializes and returns the escape table. Turns out it eats a lot of memory.
static Module loadCoreStdcConfig();
A Singleton that loads core.stdc.config
Module of core.stdc.config, null if couldn't find it
static Module loadCoreAtomic();
A Singleton that loads core.atomic
Module of core.atomic, null if couldn't find it
static Module loadStdMath();
A Singleton that loads std.math
Module of std.math, null if couldn't find it
struct ModuleDeclaration;
const const(char)[] toString();
Provide a human readable representation
void getLocalClasses(Module mod, ref ClassDeclarations aclasses);
Create array of the local classes in the Module, suitable for inclusion in ModuleInfo
Module mod the Module
ClassDeclarations aclasses array to fill in
array of local classes
int _foreach(Scope* sc, Dsymbols* members, scope ForeachDg dg, size_t* pn = null);
Expands attribute declarations in members in depth first order. Calls dg(size_t symidx, Dsymbol *sym) for each member. If dg returns !=0, stops and returns that value else returns 0. Use this function to avoid the O(N + N^2/2) complexity of calculating dim and calling N times getNth.
last value returned by dg()
FuncDeclaration findGetMembers(ScopeDsymbol dsym);
Look for member of the form: const(MemberInfo)[] getMembers(string); Returns NULL if not found