[Issue 14125] @trusted nested helper functions in std.file

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Wed Feb 4 20:04:38 PST 2015


https://issues.dlang.org/show_bug.cgi?id=14125

--- Comment #49 from David Nadlinger <code at klickverbot.at> ---
(In reply to Walter Bright from comment #44)
> I understand you want the ...safe code... to be checked for safety.

No. I want the "...safe code...", which is in fact "...code that might be safe
depending on the template arguments...", to trigger attribute inference as
usual, while the compiler should trust me on the
potentially-unsafe-but-manually-verified part (such as the cast, or a temporary
allocation, etc.).

The hypothetical @safe blocks won't help there. @trusted blocks would.

I seriously don't see how you could view the latter as more dangerous than
applying the attribute to the whole function. In fact, the difference might
even boil down to just setting STCtrusted on a smaller scope instead of the
function scope. There is still a big, red "@trusted" token in the code to catch
the reviewer's eye (well, the color obviously depends on your syntax
highlighter settings).

In fact, I think that @trusted blocks make it easier to write and review
high-quality code, as they help to reduce the amount of lines that need to be
reviewed. (Of course, having two @trusted blocks in what would otherwise be a
three-liner might not be worth it in that regard, as Andrei pointed out.)

--


More information about the Digitalmars-d-bugs mailing list