On Tuesday, 16 July 2013 at 01:24:37 UTC, Jonathan M Davis wrote:
On Monday, July 15, 2013 21:08:03 Dicebot wrote:
On Monday, 15 July 2013 at 18:39:08 UTC, JS wrote:
> and immutability doesn't nest. immutable struct A { struct B
> {
> }}, struct B is mutable.
What I have meant by "may be intended behavior" is that
immutable
qualifier does not attach at aggregate definitions. At all. It
is
irrelevant to the fact if B is nested or not.
Yes. Attributes such as immutable or private have no effect on
structs or
classes, just their members. It's a bit weird that way, but
that's the way
that it works.
Then we should be able to make a struct immutable itself. e.g.,
immutable immutable(struct) A makes both A and it's members
immutable. An immutable struct makes nested structs also
immutable.
However, I have just checked and adding a member field to B
also
leaves it mutable. And that is really frustrating.
That definitely sounds like a bug.
- Jonathan M Davis