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
- void
dsymbolSemantic
(Dsymboldsym
, Scope*sc
); - Does semantic analysis on the public face of declarations.
- AlignDeclaration
getAlignment
(AlignDeclarationad
, Scope*sc
); - Determine the numerical value of the AlignmentDeclarationParameters:
AlignDeclaration ad
AlignmentDeclaration Scope* sc
context Returns:ad with alignment value determined - Expression
resolveAliasThis
(Scope*sc
, Expressione
, boolgag
= false, boolfindOnly
= false); - Find the alias this symbol of e's type.Parameters:
Scope* sc
context Expression e
expression forming the this bool gag
do not print errors, return null instead bool findOnly
don't do further processing like resolving properties, i.e. just return plain dotExp() result. Returns:Expression that ise
.aliasthis - void
addEnumMembersToSymtab
(EnumDeclarationed
, Scope*sc
, ScopeDsymbolsds
); - Add members of EnumDeclaration to the symbol table(s).Parameters:
EnumDeclaration ed
EnumDeclaration Scope* sc
context of ed
ScopeDsymbol sds
symbol table that ed
resides in - bool
determineFields
(AggregateDeclarationad
); - Find all instance fields in
ad
, 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 ad
the AggregateDeclaration to examine Returns:false if any errors occur. - PINLINE
evalPragmaInline
(Locloc
, Scope*sc
, Expressions*args
); - Interpret a pragma(inline, x)Parameters:
Loc loc
location for error messages Scope* sc
scope for evaluation of argument Expressions* args
pragma arguments Returns:corresponding PINLINE state - Loc
adjustLocForMixin
(const(char)[]input
, const ref Locloc
, ref OutputmixinOut
); - Set up loc for a parse of a mixin. Append the input text to the mixin.Parameters:
const(char)[] input
mixin text Loc loc
location to adjust Output mixinOut
sink for mixin text data Returns:adjusted loc suitable for Parser - void
checkPrintfScanfSignature
(FuncDeclarationfuncdecl
, TypeFunctionf
, Scope*sc
); - Check signature of pragma(printf) function, print error if invalid.printf/scanf-like functions must be of the form: extern (C/C++) T printf([parameters...], const(char)* format, ...); or: extern (C/C++) T vprintf([parameters...], const(char)* format, va_list);Parameters:
FuncDeclaration funcdecl
function to check TypeFunction f
function type Scope* sc
scope - Dsymbol
search
(Dsymbold
, const ref Locloc
, Identifierident
, SearchOptFlagsflags
= SearchOpt.all); - Search for ident as member of d.Parameters:
Dsymbol d
dsymbol where ident is searched for Loc loc
location to print for error messages Identifier ident
identifier to search for SearchOptFlags flags
search options Returns:null if not found - void
setScope
(Dsymbold
, Scope*sc
); - Set scope for future semantic analysis so we can deal better with forward references.Parameters:
Dsymbol d
dsymbol for which the scope is set Scope* sc
scope that is used to set the value
Copyright © 1999-2024 by the D Language Foundation | Page generated by
Ddoc on (no date time)