SE-0390: noncopyable type `deinit`s, mutation, and accidental recursion

Mutating is just how you spell inout self. The thing is that inout T is effectively T& (an lvalue), and you can trivially reassign that.

2 Likes

I get that in the context of "we are but mere wardens of electron prisons", the two things are the same. My point is (and maybe my mental model of ~Copyable being compiler-enforced ARC with 1-0 retains is wrong) reassigning self is somewhat different from temporarily reusing the underlying memory.

To my understanding, the exact definition of temporary is the main reason for this conversation and in that sense, I apologize for any misunderstandings my half-baked "this is how'd I do it in C" post might have caused.