ForwardingStatements are distributed over the flattened
sequence of statements. This prevents flattening to be
"blocked" by a ForwardingStatement and is necessary, for
example, to support generating scope guards with `static
foreach`:
static foreach(i; 0 .. 10) scope(exit) writeln(i);
writeln("this is printed first");
// then, it prints 10, 9, 8, 7, ...
ForwardingStatements are distributed over the flattened sequence of statements. This prevents flattening to be "blocked" by a ForwardingStatement and is necessary, for example, to support generating scope guards with `static foreach`:
static foreach(i; 0 .. 10) scope(exit) writeln(i); writeln("this is printed first"); // then, it prints 10, 9, 8, 7, ...