Discussion Thread: DIP 1028--Make @safe the Default--Final Review
Steven Schveighoffer
schveiguy at gmail.com
Mon Apr 6 12:19:10 UTC 2020
On 4/5/20 9:28 PM, Jonathan M Davis wrote:
[snip]
I'm not disagreeing with any of this. Technically, @safe doesn't make
sense on a C prototype.
But practically, preventing it doesn't buy us anything important. If you
have a @safe extern(C) function (implemented in D), and it switches to
@system, searching for @trusted to find its prototypes isn't the way to
do it, you search for the function name. And technically, the @safe
marking is correct, if the function is being checked.
There are a lot of rules in D which are technically sound, but result in
pain and suffering in actual usage.
e.g:
static if(someBool)
return x;
return y; // error statement not reachable
inout int[] arr;
writeln(arr); // OK
writeln(arr.filter!(a => a %5 == 0)); // Error: only parameters or stack
based variables can be inout
I don't want to add to this list.
-Steve
More information about the Digitalmars-d
mailing list