https://issues.dlang.org/show_bug.cgi?id=24754
--- Comment #4 from Luís Ferreira <[email protected]> --- > Pointers are not allowed in @safe functions at all. What are you talking about? They are, its specified in the spec. 20.24.1. Safe Functions. Please don't close tickets as invalid as you see them and just because you think they are invalid. It's not productive for anyone. Maybe someone else sympathize with the same problem, you might not have enough understanding of it, ask for elaboration, or present arguments against it... --- > That's not a bug, it's a feature! This is a bug, and an industry facing bug. Probably one of the reasons no one at industry use or rely on it (e.g. like people do in Rust), in practice, @safe, is because its buggy and have holes. Being restrictive at the point of not allowing pointers is not a real feature, if D didn't allow pointers. It would certainly make the feature even less adopted. It's another question if we would discuss if D allows a subset of pointers only (like ref variables, or like Zig does, define the pointer semantic restrictions in the type), but that goes out of scope both from what is defined in spec and what we have today. Also if pointers was the real problem, explain why this code compiles: ``` struct Foo { int[] foo; @safe void foobar() { int* f; foreach(i; 0 .. foo.length) f = &foo[i]; } } void main() { Foo foo; foo.foobar(); } ``` It uses pointers, doesn't it? --
