On Monday, 1 September 2014 at 18:29:32 UTC, Daniel Murphy wrote:
"monarch_dodra" wrote in message news:[email protected]...

I meant it mostly in that the proposal to mark the entire function as @trusted isn't even *applicable* to template functions.

That isn't what I was proposing. Using a trusted nested or lambda function is fine, but it should not be possible to violate @safe by changing only the enclosing function.

eg making a trustedMemcpy is just as much a violation of @safe as marking the actual memcpy as @safe. It still relies on the calling function being manually verified not to call it incorrectly. If your calling function needs to be manually verified, it should be @trusted. If it can't be manually verified, it should be @system.

Idea is that you move not only actual unsafe operation into @trusted lambda but also any additional context that makes it effectively @safe, separating it from the rest of the function.

It is not that trivial to spot though so some mistakes are inevitable.

Reply via email to