Compiler implementation of the D programming language.
Calls dg(Dsymbol *sym) for each Dsymbol. If dg returns !=0, stops and returns that value else returns 0.
Dsymbols* symbols
| Dsymbols |
int delegate(Dsymbol) dg
| delegate to call for each Dsymbol |
Calls dg(Dsymbol *sym) for each Dsymbol.
Dsymbols* symbols
| Dsymbols |
void delegate(Dsymbol) dg
| delegate to call for each Dsymbol |
C++ namespace this symbol belongs to
Determine which Module a Dsymbol is in.
Determine which Module a Dsymbol is in, as far as access rights go.
pastMixin
returns the enclosing symbol if this is a template mixin.
pastMixinAndNspace
does likewise, additionally skipping over Nspaces that are mangleOnly.
See also parent
, toParent
and toParent2
.
parent
field returns a lexically enclosing scope symbol this is a member of.
toParent()
returns a logically enclosing scope symbol this is a member of. It skips over TemplateMixin's.
toParent2()
returns an enclosing scope symbol this is living at runtime. It skips over both TemplateInstance's and TemplateMixin's. It's used when looking for the 'this' pointer of the enclosing function/class.
toParentDecl()
similar to toParent2()
but always follows the template declaration scope instead of the instantiation scope.
toParentLocal()
similar to toParentDecl()
but follows the instantiation scope if a template declaration is non-local i.e. global or static.
Do syntax copy of an array of Dsymbol's.
If this symbol is really an alias for another, return that other. If needed, semantic() is invoked due to resolve forward reference.
Resolve recursive tuple expansion in eponymous template.
Iterate this dsymbol or members of this scoped dsymbol, then call fp
with the found symbol and param
.
Dsymbol_apply_ft_t fp
| function pointer to process the iterated symbol. If it returns nonzero, the iteration will be aborted. |
void* param
| a parameter passed to fp. |
Set scope for future semantic analysis so we can deal better with forward references.
Search for ident as member of s.
Loc loc
| location to print for error messages |
Identifier ident
| identifier to search for |
int flags
| IgnoreXXXX |
Search for identifier id as a member of this
. id
may be a template instance.
Loc loc
| location to print the error messages |
Scope* sc
| the scope where the symbol is located |
RootObject id
| the id of the symbol |
int flags
| the search flags which can be SearchLocalsOnly or IgnorePrivateImports
|
Returns an AggregateDeclaration when toParent() is that.
Returns an AggregateDeclaration when toParent2() is that.
Returns an AggregateDeclaration when toParentDecl() is that.
Returns an AggregateDeclaration when toParentLocal() is that.
Copy the syntax. Used for template instantiations. If s is NULL, allocate the new object, otherwise fill it in.
Determine if this symbol is only one.
Same as Dsymbol::oneMember(), but look at an array of Dsymbols.
Is Dsymbol a variable that contains pointers?
Add documentation comment to Dsymbol. Ignore NULL comments.
Returns true if this symbol is defined in a non-root module without instantiation.
Dsymbol that generates a scope
This function is #1 on the list of functions that eat cpu time. Be very, very careful about slowing it down.
Look for member of the form: const(MemberInfo)[] getMembers(string); Returns NULL if not found
Look up identifier in symbol table.
Return true if any of the members are static ctors or static dtors, or if any members have members that are.
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.
With statement scope
Array Index/Slice scope
Overload Sets
Forwarding ScopeDsymbol. Used by ForwardingAttribDeclaration and ForwardingScopeDeclaration to forward symbol insertions to another scope. See dmd.attrib.ForwardingAttribDeclaration
for more details.
Symbol to forward insertions to. Can be null
before being lazily initialized.
This override handles the following two cases: static foreach (i, i; [0]) { ... } and static foreach (i; [0]) { enum i = 2; }
Class that holds an expression in a Dsymbol wraper. This is not an AST node, but a class used to pass an expression as a function parameter of type Dsymbol.
Table of Dsymbol's
© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_dsymbol.html