"Unusable theoretical crap" is better than the current trap :-)

We hare "pure" in D, but still we have not grown up to actually use it in Phobos, for higher order functions, or parallelism.

I don't think that Nordlöw presented a serious trap. This might lead to bugs, yes, like anything else, for example: void foo(int[] arr) { ... arr ~= ... }

Same error, if you expect arr to be changed outside the function. In the case of Nordlöw: If you add a warning* it will issue many warnings for a huge amount of perfectly fine code making the warning useless. Forbidding it, would be even worse (since the code wouldn't work, a more verbose alternative needs to be used etc ..). For what? To prevent a possible bug that is easily found and fixed? Wrong trade-off if you ask me.


* When should the warning actually be issued? Whenever a closure is passed to map? Whenever a closure passed to map closes over something where hasAliasing!T is true?

Reply via email to