@trust is an encapsulation method, not an escape

David Nadlinger via Digitalmars-d digitalmars-d at puremagic.com
Sat Feb 7 04:40:24 PST 2015


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


More information about the Digitalmars-d mailing list