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.

dmd.declaration

Miscellaneous declarations, including typedef, alias, variable declarations including the implicit this declaration, type tuples, ClassInfo, ModuleInfo and various TypeInfos.
Authors:
void ObjectNotFound(Loc loc, Identifier id);
abstract class Declaration: dmd.dsymbol.Dsymbol;
final LINK resolvedLinkage() const;
Returns the linkage, resolving the target-specific System one.
final pure nothrow @nogc @safe bool isReference() const;
Returns:
Whether the variable is a reference, annotated with out or ref
class TupleDeclaration: dmd.declaration.Declaration;
void foreachVar(scope void delegate(Dsymbol) dg);
Calls dg(Dsymbol) for each Dsymbol, which should be a VarDeclaration inside VarExp (isexp == true).
Parameters:
void delegate(Dsymbol) dg delegate to call for each Dsymbol
int foreachVar(scope int delegate(Dsymbol) dg);
Calls dg(Dsymbol) for each Dsymbol, which should be a VarDeclaration inside VarExp (isexp == true). If dg returns !=0, stops and returns that value else returns 0.
Parameters:
int delegate(Dsymbol) dg delegate to call for each Dsymbol
Returns:
last value returned by dg()
class AliasDeclaration: dmd.declaration.Declaration;
bool isAliasedTemplateParameter() const;
Returns:
true if this instance was created to make a template parameter visible in the scope of a template body, false otherwise
class OverDeclaration: dmd.declaration.Declaration;
class VarDeclaration: dmd.declaration.Declaration;
final bool isDataseg();
Does symbol go into data segment? Includes extern variables.
final bool isThreadlocal();
Does symbol go into thread local storage?
final bool isCTFE();
Can variable be read and written by CTFE?
final @safe bool canTakeAddressOf();
Return true if we can take the address of this variable.
final @safe bool needsScopeDtor();
Return true if variable needs to call the destructor.
final Expression getConstInitializer(bool needFullType = true);
If variable has a constant expression initializer, get it. Otherwise, return null.
final bool checkNestedReference(Scope* sc, Loc loc);
Check to see if this variable is actually in an enclosing function rather than the current one. Update nestedrefs[], closureVars[] and outerVars[].
Returns:
true if error occurs.
class BitFieldDeclaration: dmd.declaration.VarDeclaration;
C11 6.7.2.1-4 bit fields
final ulong getMinMax(Identifier id);
Retrieve the .min or .max values. Only valid after semantic analysis.
Parameters:
Identifier id Id.min or Id.max
Returns:
the min or max value
class SymbolDeclaration: dmd.declaration.Declaration;
This is a shell around a back end symbol
class TypeInfoStructDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoClassDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoInterfaceDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoPointerDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoArrayDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoStaticArrayDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoAssociativeArrayDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoEnumDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoFunctionDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoDelegateDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoTupleDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoConstDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoInvariantDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoSharedDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoWildDeclaration: dmd.declaration.TypeInfoDeclaration;
class TypeInfoVectorDeclaration: dmd.declaration.TypeInfoDeclaration;
class ThisDeclaration: dmd.declaration.VarDeclaration;
For the "this" parameter to member functions