On Friday, 6 February 2015 at 18:52:45 UTC, Andrei Alexandrescu
wrote:
I think the problem is overstated. -- Andrei
I think there could hardly be a more persuasive argument that
this belief is wrong than Walter himself just having made the
mistake several times, and not even immediately realizing what is
wrong: https://github.com/D-Programming-Language/phobos/pull/2966
[1]
Sorry for singling out this one example here. While it is
particularly demonstrative, I am certainly not intending to put
Walter in a bad light. It's simply hard to get that stuff right,
as templates can make it hard to accurately determine the
complete public interface of a function. As pointed out in the
PR, here are some more examples for this class of bugs from
Phobos code, also written and reviewed by top D coders:
https://issues.dlang.org/show_bug.cgi?id=14135
https://issues.dlang.org/show_bug.cgi?id=14136
https://issues.dlang.org/show_bug.cgi?id=14137
https://issues.dlang.org/show_bug.cgi?id=14138
Neither of those issues would have been prevented by your new
guidelines; the code in question is already written in that way.
Quite to the contrary, consequent application of minimal @trusted
blocks or even the workaround you reject so strongly would have
prevented all of the bugs except for 14138.
David
[1] The diff in question, for when the PR is fixed:
https://github.com/klickverbot/phobos/commit/db647f62cb5279ae42ad98665cd60cdcdb9b3dd5