makeTupleForeach

Type check and unroll foreach over an expression tuple as well as static foreach statements and static foreach declarations. For 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 directly.

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 STC.local, such 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 STC.local static foreach variables.

makeTupleForeach

Meta