bearophile wrote:
Walter Bright:
It is not easier to statically analyze a forall rather than a foreach.

The problem is that you can put any kind of code inside D contracts, this
will make them them very to analyse automatically. The restricted semantics
is a way to avoid this.

All it means is the analysis returns one of three states:

1. yes
2. no
3. couldn't figure it out

This is normal for static analysis. Optimizers use it extensively, for example.


I also see no evidence that foreach is more bug-prone than a forall would
be.

I have used Python lazy/eager list comps, and I think they decrease bug-count
and speed-up coding. In the past I have explained why (mostly because of
psychological chunking).

Supporting list comprehensions is a separate issue from whether foreach should be disallowed in contracts because comps are better.

Reply via email to