https://issues.dlang.org/show_bug.cgi?id=15704
--- Comment #2 from hst...@quickfur.ath.cx --- It's not just writing to void[] that's the problem. Consider: ---- int[] intArr = [ 1,2,3,4,5 ]; void[] voidArr = intArr; // OK, every array converts to void[] int*[] ptrArr; ptrArr.length = 5; ptrArr[] = voidArr[]; // reinterpret intArr as pointers ptrArr[0] = 1; // oops ---- Basically, *anything* that leads to reinterpretation of something as pointer values cannot be allowed in @safe. --