On Thursday, 24 May 2018 at 23:03:34 UTC, meppl wrote:
On Thursday, 24 May 2018 at 22:43:00 UTC, IntegratedDimensions
wrote:
Doesn't make any sense?
foreach(a; x)
if x is not an array then a = x and the loop reduces simply
and function to the case it is not so their can be no harm.
It unifies the concepts so that one does not have to worry if
x is an array or not and can offer no harm since when x is not
an array everything simply reduces to an an alias of x.
on the otherhand some programmer might want to get informed buy
an error-msg, if he accidentally used a non-iteratable variable
for `foreach`-iteration. To avoid a silent bug
In this case it cannot be a bug. The foreach is simply
ignored/reduced. It would be impossible for any bug to creep
in(assuming no compiler bugs) in such cases.
foreach(a; x)
{
x[]
}
would be some type of potential bug... but that bug would also
exist without the loop. If x is not an array then the the foreach
effectively is removed and a is just auto a = x;
Any code that uses x would fail just as much as using a and no
more except.