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.dsymbolsem
Does the semantic 1 pass on the AST, which looks at symbol declarations but not initializers
 or function bodies.
Authors: 
License: 
Source dsymbolsem.d
Documentation https://dlang.org/phobos/dmd_dsymbolsem.html
- voiddsymbolSemantic(Dsymboldsym, Scope*sc);
- Does semantic analysis on the public face of declarations.
- AlignDeclarationgetAlignment(AlignDeclarationad, Scope*sc);
- Determine the numerical value of the AlignmentDeclarationParameters:AlignDeclaration adAlignmentDeclaration Scope* sccontext Returns:ad with alignment value determined
- boolisRvalueConstructor(StructDeclarationsd, CtorDeclarationctor);
- Check if ctor is an rvalue constructor. A constructor that receives a single parameter of the same type as Unqual!typeof(this) is an rvalue constructor.Parameters:StructDeclaration sdstruct that ctor is a member of CtorDeclaration ctorconstructor to test Returns:true if it is an rvalue constructor
- ExpressionresolveAliasThis(Scope*sc, Expressione, boolgag= false, boolfindOnly= false);
- Find the alias this symbol of e's type.Parameters:Scope* sccontext Expression eexpression forming the this bool gagdo not print errors, return null instead bool findOnlydon't do further processing like resolving properties, i.e. just return plain dotExp() result. Returns:Expression that ise.aliasthis
- voidaddEnumMembersToSymtab(EnumDeclarationed, Scope*sc, ScopeDsymbolsds);
- Add members of EnumDeclaration to the symbol table(s).Parameters:EnumDeclaration edEnumDeclaration Scope* sccontext of edScopeDsymbol sdssymbol table that edresides in
- booldetermineFields(AggregateDeclarationad);
- Find all instance fields inad, then push them into fields.Runs semantic() for all instance field variables, but also the field types can remain yet not resolved forward references, except direct recursive definitions. After the process sizeok is set to Sizeok.fwd.Parameters:AggregateDeclaration adthe AggregateDeclaration to examine Returns:false if any errors occur.
- voidadjustLocForMixin(const(char)[]input, Locloc, ref BaseLocbaseLoc, ref OutputmixinOut);
- Set up loc for a parse of a mixin. Append the input text to the mixin.Parameters:const(char)[] inputmixin text Loc loclocation of expansion BaseLoc baseLoclocation to adjust Output mixinOutsink for mixin text data Returns:adjusted loc suitable for Parser
- Dsymbolsearch(Dsymbold, Locloc, Identifierident, SearchOptFlagsflags= SearchOpt.all);
- Search for ident as member of d.Parameters:Dsymbol ddsymbol where ident is searched for Loc loclocation to print for error messages Identifier identidentifier to search for SearchOptFlags flagssearch options Returns:null if not found
- voidsetScope(Dsymbold, Scope*sc);
- Set scope for future semantic analysis so we can deal better with forward references.Parameters:Dsymbol ddsymbol for which the scope is set Scope* scscope that is used to set the value 
- boolload(Importimp, Scope*sc);
- Load module.Returns:true for errors, false for success
- voidcheckGNUABITag(Dsymbolsym, LINKlinkage);
- Called from a symbol's semantic to check if gnuAbiTag UDA can be applied to themDirectly emits an error if the UDA doesn't work with this symbolParameters:Dsymbol symsymbol to check for gnuAbiTag LINK linkageLinkage of the symbol (Declaration.link or sc.link) 
- boolisGNUABITag(Expressione);
- Check if the provided expression references core.attribute.gnuAbiTagThis should be called after semantic has been run on the expression. Semantic on UDA happens in semantic2 (see dmd.semantic2).Parameters:Expression eExpression to check (usually from UserAttributeDeclaration.atts) Returns:true if the expression references the compiler-recognized gnuAbiTag
- booldetermineSize(AggregateDeclarationad, Locloc);
- Collect all instance fields, then determine instance size.Returns:false if failed to determine the size.
- booloneMember(Dsymbold, out Dsymbolps, Identifierident);
- Determine if this symbol is only one.Returns:false, ps = null: There are 2 or more symbols true, ps = null: There are zero symbols true, ps = symbol: The one and only one symbol
- boolhasStaticCtorOrDtor(Dsymbold);
- Return true if any of the members are static ctors or static dtors, or if any members have members that are.
Copyright © 1999-2025 by the D Language Foundation | Page generated by
Ddoc on Mon Mar 31 10:27:52 2025