On Tuesday, 11 November 2014 at 08:18:36 UTC, angel wrote:
Wait !
"x.value -= 100;" would call the invariant ?
Alias this only rewrites your expression:
"x -= 100;" becomes "x.value -= 100;"
No method is called. Then there is no reason (is there ?) to call the invariant.
If you would create getter/setter properties ...

Intriguing - thanks :). Looks like you found the reason for the current implementation; what you've written is the "lowering" of alias this. From a semantic perspective though, we are claiming that "value *is* this"; there is an IsA relationship and I'd argue that the invariant should still apply because we are modifying "this", in a way.

I totally see where you're coming from though; that's why I wanted to open the floor for discussion as to what the more desirable behavior is.

Reply via email to