Type check and unroll
foreach over an expression tuple as well
static foreach statements and
static foreach statements and `static
foreach` declarations, the visitor interface is used (and the
result is written into the
result field.) For `static
foreach` declarations, the resulting Dsymbols* are returned
.statementsem .makeTupleForeach makeTupleForeach (
.dscope .Scope* sc,
.root .array .Array!(dmd.dsymbol.Dsymbol)* dbody,
The unrolled body is wrapped into a
- UnrolledLoopStatement, for
foreach over an expression tuple.
- ForwardingStatement, for
static foreach statements.
- ForwardingAttribDeclaration, for
static foreach declarations.
static foreach variables are declared as
that they are inserted into the local symbol tables of the
forwarding constructs instead of forwarded. For `static
foreach` with multiple foreach loop variables whose aggregate
has been lowered into a sequence of tuples, this function
expands the tuples into multiple