StaticForeach

Implements common functionality for StaticForeachDeclaration and StaticForeachStatement This performs the necessary lowerings before dmd.statementsem.makeTupleForeach can be used to expand the corresponding static foreach declaration or statement.

extern (C++) final
class StaticForeach : RootObject {
extern (D) static immutable
auto tupleFieldName;
Loc loc;
}

Members

Functions

prepare
void prepare(Scope* sc)

Perform static foreach lowerings that are necessary in order to finally expand the static foreach using dmd.statementsem.makeTupleForeach.

ready
bool ready()

Variables

aggrfe
ForeachStatement aggrfe;

* Not null iff the static foreach is over an aggregate. In * this case, it contains the corresponding ForeachStatement. For * StaticForeachDeclaration, the body is null.

needExpansion
bool needExpansion;

true if it is necessary to expand a tuple into multiple variables (see lowerNonArrayAggregate).

rangefe
ForeachRangeStatement rangefe;

Not null iff the static foreach is over a range. Exactly one of the aggrefe and rangefe fields is not null. See aggrfe field for more details.

Inherited Members

From RootObject

toString
const(char)[] toString()
Suggestion Box / Bug Report