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.

ddmd.declaration

Compiler implementation of the D programming language.
Authors:
bool checkFrameAccess(Loc loc, Scope* sc, AggregateDeclaration ad, size_t iStart = 0);
Check to see the aggregate type is nested and its context pointer is accessible from the current scope. Returns true if error occurs.
void ObjectNotFound(Identifier id);
abstract class Declaration: ddmd.dsymbol.Dsymbol;
final int checkModify(Loc loc, Scope* sc, Type t, Expression e1, int flag);
Check to see if declaration can be modified in this context (sc). Issue error if not.
class TupleDeclaration: ddmd.declaration.Declaration;
class AliasDeclaration: ddmd.declaration.Declaration;
class OverDeclaration: ddmd.declaration.Declaration;
class VarDeclaration: ddmd.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 bool canTakeAddressOf();
Return true if we can take the address of this variable.
final bool needsScopeDtor();
Return true if variable needs to call the destructor.
final Expression callScopeDtor(Scope* sc);
If a variable has a scope destructor call, return call for it. Otherwise, return NULL.
final Expression getConstInitializer(bool needFullType = true);
If variable has a constant expression initializer, get it. Otherwise, return null.
final Expression expandInitializer(Loc loc);
Helper function for the expansion of manifest constant.
final bool checkNestedReference(Scope* sc, Loc loc);
Check to see if this variable is actually in an enclosing function rather than the current one. Returns true if error occurs.
final const pure bool enclosesLifetimeOf(VarDeclaration v);
Determine if this has a lifetime that lasts past the destruction of v
Parameters:
VarDeclaration v variable to test against
Returns:
true if it does
class SymbolDeclaration: ddmd.declaration.Declaration;
This is a shell around a back end symbol
class TypeInfoDeclaration: ddmd.declaration.VarDeclaration;
class TypeInfoStructDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoClassDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoInterfaceDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoPointerDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoArrayDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoStaticArrayDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoAssociativeArrayDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoEnumDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoFunctionDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoDelegateDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoTupleDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoConstDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoInvariantDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoSharedDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoWildDeclaration: ddmd.declaration.TypeInfoDeclaration;
class TypeInfoVectorDeclaration: ddmd.declaration.TypeInfoDeclaration;
class ThisDeclaration: ddmd.declaration.VarDeclaration;
For the "this" parameter to member functions