View source code
Display the source code in dmd/dsymbol.d from which this page was generated on github.
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 local clone.

Module dmd.dsymbol

The base class for a D symbol, which can be a module, variable, function, enum, etc.

Documentation

https://dlang.org/phobos/dmd_dsymbol.html

Coverage

https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dsymbol.d

Functions

NameDescription
foreachDsymbol(symbols, dg) Calls dg(Dsymbol *sym) for each Dsymbol. If dg returns !=0, stops and returns that value else returns 0.
foreachDsymbol(symbols, dg) Calls dg(Dsymbol *sym) for each Dsymbol.
handleSymbolRedeclarations(sc, s, s2, sds) ImportC allows redeclarations of C variables, functions and typedefs. extern int x; int x = 3;
handleTagSymbols(sc, s, s2, sds) ImportC tag symbols sit in a parallel symbol table, so that this C code works:

Classes

NameDescription
AliasAssign Encapsulate assigning to an alias: identifier = type; identifier = symbol; where identifier is an AliasDeclaration in scope.
ArrayScopeSymbol Array Index/Slice scope
Dsymbol
DsymbolTable Table of Dsymbol's
ExpressionDsymbol Class that holds an expression in a Dsymbol wrapper. This is not an AST node, but a class used to pass an expression as a function parameter of type Dsymbol.
ForwardingScopeDsymbol Forwarding ScopeDsymbol. Used by ForwardingAttribDeclaration and ForwardingScopeDeclaration to forward symbol insertions to another scope. See ForwardingAttribDeclaration for more details.
OverloadSet Overload Sets
ScopeDsymbol Dsymbol that generates a scope
WithScopeSymbol With statement scope

Structs

NameDescription
FieldState Struct/Class/Union field state. Used for transitory information when setting field offsets, such as bit fields.

Authors

Walter Bright

License

Boost License 1.0