Why hide a trusted function as safe?

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jul 27 08:18:48 PDT 2015


On 7/26/15 9:11 AM, Dicebot wrote:
> I remember doing something like that in druntime because of objects -
> you can't override @safe method prototype with @trusted one.
>

But you can, at least now you can, maybe it's changed.

In answer to the original question, the given code is quite unnecessary. 
However, the @trusted moniker would appear in the docs instead of @safe. 
Perhaps that's the reason.

BTW, the reason to put @trusted islands is because you have fully 
encapsulated @trusted parts inside a function. If the implementation 
details of the islands leak out to the @safe code, you should have the 
entire function be trusted (@safe can only really be useful if the 
building blocks its using are also @safe or manually verified to be 
@safe). This is often difficult to prove, and code inside 
phobos/druntime was written at various stages of the "@trusted" 
philosophy. So you are bound to find inconsistencies.

IMO, that function simply should be marked trusted until it can be 
marked safe.

-Steve


More information about the Digitalmars-d-learn mailing list