https://issues.dlang.org/show_bug.cgi?id=18071
Issue ID: 18071 Summary: [REG2.078] byKey, byValue and byKeyValue are now a hole for unsafe code Product: D Version: D2 Hardware: x86_64 OS: All Status: NEW Severity: regression Priority: P1 Component: druntime Assignee: nob...@puremagic.com Reporter: greensunn...@gmail.com ``` int main() @safe { auto a = ["foo": 1]; auto r = a.byValue; r.popFront; return r.front; // oops } ``` and another one: ``` struct Foo { int[int] aa; auto opCast() pure nothrow @nogc { *cast(uint*)0xdeadbeef = 0xcafebabe; return null; } alias aa this; } int main() @safe { Foo f; return !f.byKey.empty; } ``` While 2.077.1 correctly emits warnings that this isn't `@safe`, the code (after https://github.com/dlang/druntime/pull/1944) segfaults. --