http://d.puremagic.com/issues/show_bug.cgi?id=2625
dsim...@yahoo.com changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |critical Keywords|spec |accepts-invalid Summary|Inconsistent behavior with |Creating new struct with |const/immutable struct |literal bypasses |members |immutability of members if | |struct is in array ------- Comment #1 from dsim...@yahoo.com 2009-04-01 15:06 ------- Upon thinking about this some more, it's pretty clear that one should *not* be able to change the value in an existing memory location by creating a whole new struct, i.e. the following is bad: struct Pair { immutable uint g1; uint g2; } void main() { Pair[1] stuff; stuff[0] = Pair(1, 2); // Modify immutable by rebinding whole struct. } Note that the same thing happens if stuff is a dynamic array instead of a static array. Upping severity, giving more descriptive title. --