Discussion Thread: DIP 1035-- at system Variables--Community Review Round 1

Stanislav Blinov stanislav.blinov at gmail.com
Wed Jun 10 14:15:31 UTC 2020


 From the feedback thread:

On Wednesday, 10 June 2020 at 13:56:11 UTC, Timon Gehr wrote:
> Memory safety cannot depend on the correctness of a `@safe` 
> constructor.

> struct VmInstruction {
>     @system Opcode opcode; // this need not be private, just a 
> valid enum member
>     this(Opcode opcode) @safe {
>         this.opcode = opcode; // forgot to check
>     }
> }
> ...
> void main() @safe {
>     auto code = [VmInstruction(cast(Opcode)20)];
>     execute(code);
> }

Good observation. It *almost* feels like there's a case lurking 
for disallowing enum casts in @safe code.


More information about the Digitalmars-d mailing list