On Monday, 11 May 2015 at 13:37:27 UTC, ref2401 wrote:
Why does it happen?
You'd just be writing to the immutable memory through a different name.
Consider if someone took a reference to one of those immutable ints, expecting it to never change. Then you wrote a new struct over the same location with different values. Then the ints pointed to by that reference suddenly change, despite allegedly being immutable!
Assigning a struct in-place is the same as assigning all its members.