On Monday, 1 October 2018 at 02:29:40 UTC, Manu wrote:
I feel like I don't understand the design...mutable -> shared should work the same as mutable -> const... becausesurely that's safe?
Nope. Consider. struct A { A* a; } void foo(shared A* a) { a.a = new shared(A))(); }Now you have effectively made a.a accessible as a mutable when it is shared.