StaticForeachDeclaration

Static foreach at declaration scope, like: static foreach (i; [0, 1, 2]){ }

extern (C++) final
class StaticForeachDeclaration : AttribDeclaration {
StaticForeach sfe;
ScopeDsymbol scopesym;
bool cached;
Dsymbols* cache;
}

Members

Variables

onStack
bool onStack;

include can be called multiple times, but a static foreach should be expanded at most once. Achieved by caching the result of the first call. We need both cached and cache, because null is a valid value for cache.

Inherited Members

From AttribDeclaration

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.

addLocalClass
void addLocalClass(ClassDeclarations* aclasses)

Meta