On Tuesday, 15 November 2022 at 02:26:41 UTC, Elfstone wrote:
By assigning aSlice to arr or a, it seemingly escapes the
scope, I thought there'd be errors, but the code compiles just
fine.
Is it really safe though?
No, it's not safe. You can add `@safe:` line in the beginning of
your program and it will fail to compile (after renaming
static_array to aSlice):
test.d(27): Error: address of variable `aSlice` assigned to
`arr` with longer lifetime
By default everything is assumed to be @system and the compiler
silently allows you to shoot yourself in the foot. See
https://dlang.org/spec/memory-safe-d.html