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
Compiler implementation of the
 D programming language.
Authors: 
License: 
Source declaration.d
Documentation https://dlang.org/phobos/dmd_declaration.html
- boolcheckFrameAccess(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.
- boolmodifyFieldVar(Locloc, Scope*sc, VarDeclarationvar, Expressione1);
- Mark variable v as modified if it is inside a constructor that var is a field in.
- voidObjectNotFound(Identifierid);
- abstract classDeclaration: dmd.dsymbol.Dsymbol;
- 
- final boolcheckDisabled(Locloc, Scope*sc, boolisAliasedDeclaration= false);
- Issue an error if an attempt to call a disabled method is madeIf the declaration is disabled but inside a disabled function, returns true but do not issue an error message.Parameters:Loc locLocation information of the call Scope* scScope in which the call occurs bool isAliasedDeclarationif true searches overload set Returns:true if this Declaration is @disabled, false otherwise.
- final ModifiablecheckModify(Locloc, Scope*sc, Expressione1, intflag);
- Check to see if declaration can be modified in this context (sc). Issue error if not.Parameters:Loc loclocation for error messages Expression e1null or this expression when this declaration is a field Scope* sccontext int flag!=0 means do not issue error message for invalid modification Returns:Modifiable.yes or Modifiable.initialization
 
- classTupleDeclaration: dmd.declaration.Declaration;
- classAliasDeclaration: dmd.declaration.Declaration;
- 
- boolwasTemplateParameter;
- indicates wether the alias was created to make a template parameter visible in the scope, i.e as a member.
 
- classOverDeclaration: dmd.declaration.Declaration;
- classVarDeclaration: dmd.declaration.Declaration;
- 
- final boolisDataseg();
- Does symbol go into data segment? Includes extern variables.
- final boolisThreadlocal();
- Does symbol go into thread local storage?
- final boolisCTFE();
- Can variable be read and written by CTFE?
- final boolcanTakeAddressOf();
- Return true if we can take the address of this variable.
- final boolneedsScopeDtor();
- Return true if variable needs to call the destructor.
- final ExpressioncallScopeDtor(Scope*sc);
- If a variable has a scope destructor call, return call for it. Otherwise, return NULL.
- final ExpressiongetConstInitializer(boolneedFullType= true);
- If variable has a constant expression initializer, get it. Otherwise, return null.
- final ExpressionexpandInitializer(Locloc);
- Helper function for the expansion of manifest constant.
- final boolcheckNestedReference(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[].Returns:true if error occurs.
- final const pure boolenclosesLifetimeOf(VarDeclarationv);
- Determine if this has a lifetime that lasts past the destruction ofvParameters:VarDeclaration vvariable to test against Returns:true if it does
- final voidaddMaybe(VarDeclarationv);
- Add variable to maybes[]. When a maybescope variablevis assigned to a maybescope variable this, we cannot determine if this is actually scope until the semantic analysis for the function is completed. Thus, we save the data until then.Parameters:VarDeclaration van STC.maybescope variable that was assigned to this 
 
- classSymbolDeclaration: dmd.declaration.Declaration;
- This is a shell around a back end symbol
- classTypeInfoDeclaration: dmd.declaration.VarDeclaration;
- classTypeInfoStructDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoClassDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoInterfaceDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoPointerDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoArrayDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoStaticArrayDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoAssociativeArrayDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoEnumDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoFunctionDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoDelegateDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoTupleDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoConstDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoInvariantDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoSharedDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoWildDeclaration: dmd.declaration.TypeInfoDeclaration;
- classTypeInfoVectorDeclaration: dmd.declaration.TypeInfoDeclaration;
- classThisDeclaration: dmd.declaration.VarDeclaration;
- For the "this" parameter to member functions
Copyright © 1999-2022 by the D Language Foundation | Page generated by
Ddoc on (no date time)