- decl
Dsymbols* decl;
Undocumented in source.
- include
Dsymbols* include(Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
- createNewScope
Scope* createNewScope(Scope* sc, StorageClass stc, LINK linkage, CPPMANGLE cppmangle, Prot protection, int explicitProtection, AlignDeclaration aligndecl, PINLINE inlining)
Create a new scope if one or more given attributes
are different from the sc's.
If the returned scope != sc, the caller should pop
the scope after it used.
- newScope
Scope* newScope(Scope* sc)
A hook point to supply scope for members.
addMember, setScope, importAll, semantic, semantic2 and semantic3 will use this.
- addMember
void addMember(Scope* sc, ScopeDsymbol sds)
Undocumented in source. Be warned that the author may not have intended to support it.
- setScope
void setScope(Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
- importAll
void importAll(Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
- addComment
void addComment(const(char)* comment)
Undocumented in source. Be warned that the author may not have intended to support it.
- kind
const(char)* kind()
Undocumented in source. Be warned that the author may not have intended to support it.
- oneMember
bool oneMember(Dsymbol* ps, Identifier ident)
Undocumented in source. Be warned that the author may not have intended to support it.
- setFieldOffset
void setFieldOffset(AggregateDeclaration ad, uint* poffset, bool isunion)
Undocumented in source. Be warned that the author may not have intended to support it.
- hasPointers
bool hasPointers()
Undocumented in source. Be warned that the author may not have intended to support it.
- hasStaticCtorOrDtor
bool hasStaticCtorOrDtor()
Undocumented in source. Be warned that the author may not have intended to support it.
- checkCtorConstInit
void checkCtorConstInit()
Undocumented in source. Be warned that the author may not have intended to support it.
- addLocalClass
void addLocalClass(ClassDeclarations* aclasses)
- addObjcSymbols
void addObjcSymbols(ClassDeclarations* classes, ClassDeclarations* categories)
Undocumented in source. Be warned that the author may not have intended to support it.
- isAttribDeclaration
inout(AttribDeclaration) isAttribDeclaration()
Undocumented in source. Be warned that the author may not have intended to support it.
- accept
void accept(Visitor v)
Undocumented in source. Be warned that the author may not have intended to support it.
Collection of declarations that stores foreach index variables in a local symbol table. Other symbols declared within are forwarded to another scope, like:
static foreach (i; 0 .. 10) // loop variables for different indices do not conflict. { // this body is expanded into 10 ForwardingAttribDeclarations, where i has storage class STC.local mixin("enum x" ~ to!string(i) ~ " = i"); // ok, can access current loop variable }
static foreach (i; 0.. 10) { pragma(msg, mixin("x" ~ to!string(i))); // ok, all 10 symbols are visible as they were forwarded to the global scope }
static assert (!is(typeof(i))); // loop index variable is not visible outside of the static foreach loop
A StaticForeachDeclaration generates one ForwardingAttribDeclaration for each expansion of its body. The AST of the ForwardingAttribDeclaration contains both the `static foreach variables and the respective copy of the static foreach` body. The functionality is achieved by using a ForwardingScopeDsymbol as the parent symbol for the generated declarations.