dmd.declaration
Miscellaneous declarations, including typedef, alias, variable declarations including the
implicit this declaration
, type tuples, ClassInfo, ModuleInfo and various TypeInfos.
License
Source: declaration.d
Documentation: https://dlang.org/phobos/dmd_declaration.html
-
Declaration
bool
checkFrameAccess
(Locloc
, Scope*sc
, AggregateDeclarationad
, size_tiStart
= 0);Check to see the aggregate type is nested and its context pointer is accessible from the current scope. Returns
true
if error occurs. -
Declaration
bool
modifyFieldVar
(Locloc
, Scope*sc
, VarDeclarationvar
, Expressione1
);Mark variable v as modified if it is inside a constructor that
var
is a field in. -
Declaration
void
ObjectNotFound
(Identifierid
); -
Declaration
enum STC
STCFlowThruAggregate
;for an AggregateDeclaration
-
Declaration
enum STC
STCFlowThruFunction
;for a FuncDeclaration
-
Declaration
abstract class
Declaration
: dmd.dsymbol.Dsymbol;-
Declaration
final bool
checkDisabled
(Locloc
, Scope*sc
, boolisAliasedDeclaration
= false);Issue an error if an attempt to call a disabled method is made
Discussion
If the declaration is disabled but inside a disabled function, returns
true
but 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
true
searches overload setReturn Value
true
if thisDeclaration
is@disable
d,false
otherwise. -
Declaration
final Modifiable
checkModify
(Locloc
, Scope*sc
, Expressione1
, intflag
);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
null
orthis
expression when this declaration is a fieldScope*
sc
context
int
flag
!=0 means do not issue error message for invalid modification
Return Value
Modifiable.yes or Modifiable.initialization
-
-
Declaration
class
TupleDeclaration
: dmd.declaration.Declaration; -
Declaration
class
AliasDeclaration
: dmd.declaration.Declaration;-
Declaration
const bool
isAliasedTemplateParameter
();Return Value
true
if this instance was created to make a template parameter visible in the scope of a template body,false
otherwise
-
-
Declaration
class
OverDeclaration
: dmd.declaration.Declaration; -
Declaration
class
VarDeclaration
: dmd.declaration.Declaration;-
Declaration
final bool
isDataseg
();Does symbol go into data segment? Includes extern variables.
-
Declaration
final bool
isThreadlocal
();Does symbol go into thread local storage?
-
Declaration
final bool
isCTFE
();Can variable be read and written by CTFE?
-
Declaration
final bool
canTakeAddressOf
();Return
true
if we can take the address of this variable. -
Declaration
final bool
needsScopeDtor
();Return
true
if variable needs to call the destructor. -
Declaration
final Expression
callScopeDtor
(Scope*sc
);If a variable has a scope destructor call, return call for it. Otherwise, return NULL.
-
Declaration
final Expression
getConstInitializer
(boolneedFullType
= true);If variable has a constant expression initializer, get it. Otherwise, return
null
. -
Declaration
final Expression
expandInitializer
(Locloc
);Helper function for the expansion of manifest constant.
-
Declaration
final bool
checkNestedReference
(Scope*sc
, Locloc
);Check to see if this variable is actually in an enclosing function rather than the current one. Update nestedrefs[], closureVars[] and outerVars[].
Return Value
true
if error occurs. -
Declaration
final const pure bool
enclosesLifetimeOf
(VarDeclarationv
);Determine if
this
has a lifetime that lasts past the destruction ofv
Parameters
VarDeclaration
v
variable to test against
Return Value
true
if it does -
Declaration
final void
addMaybe
(VarDeclarationv
);Add variable to maybes[]. When a maybescope variable
is assigned to a maybescope variablev
this
, we cannot determine ifthis
is 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
-
-
Declaration
class
SymbolDeclaration
: dmd.declaration.Declaration;This is a shell around a back end symbol
-
Declaration
class
TypeInfoDeclaration
: dmd.declaration.VarDeclaration; -
Declaration
class
TypeInfoStructDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoClassDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoInterfaceDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoPointerDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoArrayDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoStaticArrayDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoAssociativeArrayDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoEnumDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoFunctionDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoDelegateDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoTupleDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoConstDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoInvariantDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoSharedDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoWildDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
TypeInfoVectorDeclaration
: dmd.declaration.TypeInfoDeclaration; -
Declaration
class
ThisDeclaration
: dmd.declaration.VarDeclaration;For the "this" parameter to member functions