View source code
Display the source code in dmd/dsymbolsem.d from which thispage was generated on github.
Report a bug
If you spot a problem with this page, click here to create aBugzilla 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 usinglocal clone.
Module dmd.dsymbolsem
Does the semantic 1 pass on the AST, which looks at symbol declarations but not initializers or function bodies.
Documentation
https://dlang.org/phobos/dmd_dsymbolsem.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/compiler/src/dmd/dsymbolsem.d
Functions
| Name | Description |
|---|---|
_foreach(sc, members, dg, pn)
|
Expands attribute declarations in members in depth first order. Calls dg(size_t symidx, Dsymbol *sym) for each member. If dg returns !=0, stops and returns that value else returns 0. Use this function to avoid the O(N + N^2/2) complexity of calculating dim and calling N times getNth. |
_isZeroInit(exp)
|
Determine if exp is all binary zeros. |
addDeferredSemantic(s)
|
Can't run semantic on s now, try again later. |
addEnumMembersToSymtab(ed, sc, sds)
|
Add members of EnumDeclaration to the symbol table(s). |
adjustLocForMixin(input, loc, baseLoc, mixinOut)
|
Set up loc for a parse of a mixin. Append the input text to the mixin. |
apply(symbol, fp, ctx)
|
Iterate this dsymbol or members of this scoped dsymbol, then
call fp with the found symbol and params.
|
checkGNUABITag(sym, linkage)
|
Called from a symbol's semantic to check if gnuAbiTag UDA
can be applied to them
|
determineFields(ad)
|
Find all instance fields in ad, then push them into fields.
|
determineSize(ad, loc)
|
Collect all instance fields, then determine instance size. |
dsymbolSemantic(dsym, sc)
|
Does semantic analysis on the public face of declarations. |
fillVtbl(bc, cd, vtbl, newinstance)
|
Fill in vtbl[] for base class based on member functions of class cd. |
followInstantiationContext(d, p1, p2)
|
Returns true if any of the symbols p1 or p2 resides in the enclosing
instantiation scope of this.
|
getAlignment(ad, sc)
|
Determine the numerical value of the AlignmentDeclaration |
getLocalClasses(mod, aclasses)
|
Create array of the local classes in the Module, suitable for inclusion in ModuleInfo |
hasPointers(d)
|
Is Dsymbol a variable that contains pointers? |
hasStaticCtorOrDtor(d)
|
Return true if any of the members are static ctors or static dtors, or if any members have members that are. |
isGNUABITag(e)
|
Check if the provided expression references gnuAbiTag
|
isPOD(sd)
|
Determine if struct is POD (Plain Old Data). |
isRvalueConstructor(sd, ctor)
|
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.
|
load(imp, sc)
|
Load module. |
loadCoreStdcConfig()
|
A Singleton that loads core.stdc.config |
loadStdMath()
|
A Singleton that loads std.math |
oneMember(d, ps, ident)
|
Determine if this symbol is only one. |
oneMembers(members, ps, ident)
|
Same as Dsymbol::oneMember(), but look at an array of Dsymbols. |
resolveAliasThis(sc, e, gag, findOnly)
|
Find the alias this symbol of e's type.
|
runDeferredSemantic()
|
Run semantic() on deferred symbols. |
search(d, loc, ident, flags)
|
Search for ident as member of d. |
setScope(d, sc)
|
Set scope for future semantic analysis so we can deal better with forward references. |
size(_this, loc)
|
|
toAlias(s)
|
If this symbol is really an alias for another, return that other. If needed, semantic() is invoked due to resolve forward reference. |
toAlias2(s)
|
Resolve recursive tuple expansion in eponymous template. |
toParentP(d, p1, p2)
|
Returns the declaration scope scope of this unless any of the symbols
p1 or p2 resides in its enclosing instantiation scope then the
latter is returned.
|
Authors
License
Copyright © 1999-2026 by the D Language Foundation | Page generated by ddox.