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.



Reply via email to