On Sunday, 21 February 2016 at 15:03:39 UTC, Marc Schütz wrote:
I've adapted my previous DIP on lazy initialization to make it
usable for logical immutability, as is useful for reference
counting, among other things:
http://wiki.dlang.org/DIP89
From the DIP:
The second rule (@system) prevents accidental accesses that
violate [logical const-ness]
It seems we could use @mutable as a method attribute instead of
@trusted const. The advantage would be that code is still checked
for @safety. Requiring it still helps to prevent unintentional
mutation and remind the programmer about correct logical const
encapsulation. I realise @trusted has more impact but really here
this use isn't related to memory safety, (or is it)?