On Wednesday, August 21, 2013 01:21:22 Dicebot wrote: > On Tuesday, 20 August 2013 at 22:48:26 UTC, Jonathan M Davis > > wrote: > > Static arrays are unsafe in many situations, especially if you > > end up slicing > > them by accident. > > But we don't prohibit slicing static arrays. Does not seem > consistent approach. If pointer safety would have been really > important, `scope` definition and implementation would have been > a priority. > > > The semantics of static arrays are also very different, since > > they're value types. > > But slices of static arrays are still slices. What does it change > in practice?
Slicing a static array is the equivalent of taking the address of a local variable. It's a bug that it's not considered @system. http://d.puremagic.com/issues/show_bug.cgi?id=8838 And IMHO, the fact that the language _ever_ implicitly slices static arrays is a major design flaw. It's the same as if passing a variable of type T to a function that accept T* implicitly took the address of that variable rather than giving an error, and I think that most people would agree that that's a dumb idea. Unfortunately though, I don't expect it to be fixed at this point, since it would break too much code to do so. - Jonathan M Davis
