dmd.declaration
  Compiler implementation of the D programming language. 
- Authors:
- 
Walter Bright 
- License:
- 
Boost License 1.0 
- Source
-  declaration.d 
- Documentation
-  https://dlang.org/phobos/dmd_declaration.html 
- Coverage
-  https://codecov.io/gh/dlang/dmd/src/master/src/dmd/declaration.d
- 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. 
- bool modifyFieldVar(Loc loc, Scope* sc, VarDeclaration var, Expression e1); 
- 
Mark variable v as modified if it is inside a constructor that var is a field in. 
- void ObjectNotFound(Identifier id); 
- abstract class Declaration: dmd.dsymbol.Dsymbol; 
-  
- final bool checkDisabled(Loc loc, Scope* sc, bool isAliasedDeclaration = false); 
- 
Issue an error if an attempt to call a disabled method is made  If the declaration is disabled but inside a disabled function, returns truebut do not issue an error message.
 
- Parameters:
- 
- 
| Loc loc | Location information of the call |  - 
| Scope* sc | Scope in which the call occurs |  - 
| bool isAliasedDeclaration | if truesearches overload set |  
 
 
- Returns:
- 
trueif thisDeclarationis@disabled,falseotherwise.
 
- final Modifiable checkModify(Loc loc, Scope* sc, Expression e1, int flag); 
- 
Check to see if declaration can be modified in this context (sc). Issue error if not.  
- Parameters:
- 
- 
| Loc loc | location for error messages |  - 
| Expression e1 | nullorthisexpression when this declaration is a field |  - 
| Scope* sc | context |  - 
| int flag | !=0 means do not issue error message for invalid modification |  
 
 
- Returns:
- Modifiable.yes or Modifiable.initialization
 
 
- class TupleDeclaration: dmd.declaration.Declaration; 
- class AliasDeclaration: dmd.declaration.Declaration; 
- 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 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 thishas a lifetime that lasts past the destruction ofv
 
- Parameters:
- 
- 
| VarDeclaration v | variable to test against |  
 
 
- Returns:
- true if it does
 
- final void addMaybe(VarDeclaration v); 
- 
Add variable to maybes[]. When a maybescope variable vis assigned to a maybescope variablethis, we cannot determine ifthisis actually scope until the semantic analysis for the function is completed. Thus, we save the data until then.
 
- Parameters:
- 
- 
| VarDeclaration v | an STC.maybescope variable that was assigned to this |  
 
 
 
- class SymbolDeclaration: dmd.declaration.Declaration; 
- 
This is a shell around a back end symbol 
- class TypeInfoDeclaration: dmd.declaration.VarDeclaration; 
- 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