September 07, 2020 Are @safe unittests actually checked for safety? | ||||
---|---|---|---|---|
| ||||
Are unittests that are marked @safe actually checked for safety? https://github.com/dlang/phobos/blob/v2.093.1/std/file.d#L4937 How comes this unittest is @safe when `dirEntries` appears to be @system? Example I: https://run.dlang.io/is/Vf0STw > Error: @safe function onlineapp.listdir cannot call @system function std.file.dirEntries Example II (by adr): > int* a = cast(int*) 0xdeadbeef; > also was allowed.. > making me think @safe unittest doesn't actually check the safety - Elias PS: is there a @safe version of `dirEntries`? |
September 07, 2020 Re: Are @safe unittests actually checked for safety? | ||||
---|---|---|---|---|
| ||||
Posted in reply to 0xEAB | On Monday, 7 September 2020 at 20:33:26 UTC, 0xEAB wrote:
> Are unittests that are marked @safe actually checked for safety?
>
>
> https://github.com/dlang/phobos/blob/v2.093.1/std/file.d#L4937
> How comes this unittest is @safe when `dirEntries` appears to be @system?
I see what happened now: those nested functions are defined, but never actually called.
The definition did NOT inherit the @safe from the unittest, but since they were never called, it never actually mattered; the check happens on call, not on definition.
|
Copyright © 1999-2021 by the D Language Foundation