https://issues.dlang.org/show_bug.cgi?id=18444
Issue ID: 18444 Summary: [DIP25][DIP1000] Tracking issue for: "The implementation doesn't match DIPs 25/1000" Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: rejects-valid, safe, spec Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: chi...@posteo.net Depends on: 17512 Blocks: 18110 Tracking issue for: "The implementation doesn't match DIPs 25/1000". Existing and coming bugzilla issues will be lined up here (Depends on:). My initial add-priority is on issues as I encounter them as "blocking -dip1000 compilable phobos". (-dip1000 includes -dip25) Tracking down the kind of issues addressed here in the presence of inferred attributes/storage classes is somewhat tedious, as the compiler mostly comes up with the starting point only. E.g. temporarily explicitely declaring templated functions as @safe (that should be inferred @safe but aren't) helps to improve error message precision and so on down to the root of the failing @safe inference, which may be a phobos or dmd implementation issue. Some uses of writef/writefln... are of this kind (inferred @safe with -dip25, but inferred @system with -dip1000 currently). Instrumenting with pragma(msg, typeof(&someFunction)); is another helper (does anybody know how to address struct auto-generated functions Constructor, Destructor, Postblit, Assignment Operator?; I failed with e.g. __dtor etc.). Any more hints/advice here is very much appreciated. https://github.com/dlang/DIPs/blob/master/DIPs/archive/DIP25.md https://github.com/dlang/DIPs/blob/master/DIPs/DIP1000.md Referenced Issues: https://issues.dlang.org/show_bug.cgi?id=17512 [Issue 17512] [REG 2.073] [DIP1000] Error on bad interplay of "auto ref" and "return" attribute deduction. https://issues.dlang.org/show_bug.cgi?id=18110 [Issue 18110] most of phobos should be @safe-ly useable --