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)?

Reply via email to