StaticForeachDeclaration

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

Constructors

this
this(StaticForeach sfe, Dsymbols* decl)
Undocumented in source.

Members

Functions

accept
void accept(Visitor v)
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.
addMember
void addMember(Scope* sc, ScopeDsymbol sds)
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.
include
Dsymbols* include(Scope* sc)
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.
setScope
void setScope(Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
syntaxCopy
StaticForeachDeclaration syntaxCopy(Dsymbol s)
Undocumented in source. Be warned that the author may not have intended to support it.

Variables

cache
Dsymbols* cache;
Undocumented in source.
cached
bool cached;
Undocumented in source.
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.

scopesym
ScopeDsymbol scopesym;

cached enclosing scope (mimics static if declaration)

sfe
StaticForeach sfe;

contains static foreach expansion logic

Inherited Members

From AttribDeclaration

decl
Dsymbols* decl;

Dsymbol's affected by this AttribDeclaration

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, Visibility visibility, int explicitVisibility, AlignDeclaration aligndecl, PragmaDeclaration 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.

Meta