[Issue 14125] std.file has gotten out of hand
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Wed Feb 4 17:52:06 PST 2015
https://issues.dlang.org/show_bug.cgi?id=14125
--- Comment #31 from Andrei Alexandrescu <andrei at erdani.com> ---
(In reply to hsteoh from comment #29)
> One idea that occurred to me (though it may be a bit too late to implement)
> is that @trusted functions remain under @safe requirements except for
> @system blocks within the function body, e.g.:
>
> -----
> // This is hypothetical syntax, the exact syntax is not important,
> // it's the idea behind it.
> int myTrustedFunc(int x) @trusted {
> int x = *cast(int*)null; // Compile error: unmarked unsafe operation in
> @trusted function
> @system {
> enum magicAddress = 0x900D1DEA;
> int y = *cast(int*)magicAddress; // OK, unsafe operation allowed in
> @system block
> }
>
> free(null); // Compile error: cannot call @system function outside
> @system block
> return ...;
> }
> -----
>
> This way, reviewers know to scrutinize everything inside the @system block,
> while the code outside is mechanically verified not to introduce more
> @system operations to the function.
No, please. Let's not make matters even more complicated and more opened to
abuse.
--
More information about the Digitalmars-d-bugs
mailing list