DIP 1028---Make @safe the Default---Community Review Round 1

ag0aep6g anonymous at example.com
Thu Jan 2 12:23:54 UTC 2020

On 02.01.20 12:10, bachmeier wrote:
> If I want to make my code compile, I'd be forced to declare a function 
> @trusted *even if it shouldn't be*. In other words, if we go down this 
> road, @trusted loses its meaning. If I mark it @system, that doesn't 
> really help, because my code still isn't going to compile.

Yes, you shouldn't blindly slap @trusted on your non- at safe functions.

But you *can* blindly slap @system on them. Non-annotated functions are 
already @system by default; you're just making it explicit. Your code 
should compile the same as today.

> Perhaps someone can explain where I'm wrong. If I'm correct, then it 
> would make more sense to declare at the top of a file that this is 
> legacy code and thus treated as @trusted unless marked otherwise.

There's not really a way to do it for a whole file, but with `@system:` 
and `@system { ... }` the busywork might be tolerable. Though I would 
consider it better practice to mark each function individually.

And legacy code should be treated as @system, not as @trusted.

More information about the Digitalmars-d mailing list