https://issues.dlang.org/show_bug.cgi?id=19316
Stanislav Blinov <stanislav.bli...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|INVALID |--- --- Comment #2 from Stanislav Blinov <stanislav.bli...@gmail.com> --- It is being passed: C may define static data accessible to 'safeFunc'. The point is, this includes any arbitrary un-@safe code, e.g. catching an Error or even a Throwable. Net effect is that this code: static C c; void safeFunc() @safe { destroy(c); } would fail to compile, and yet that same code executes via GC. There's another unfortunate consequence of this behavior: 'pure' is also affected, as is nothrow (though the latter terminates the program anyway as it results in a FinalizationError). --