On 09/17/2015 08:37 PM, Stefan Koch wrote:
Hi,
is there any reason why opCmp and opEquals are not pure ?

Not all reasonable implementation are. Arguably, the methods shouldn't even be on Object.

I would argue it is very counter-intuitive to mutate any state when
comparing objects.
...

Not if it is done to improve performance, but not visible semantics.

opCmp and opEquals not being annotated pure is a major problem for me in
writing ctfe-able code.

since any call to Object.opEquals need to be warped in another function
to be able to cast the Function pure.


I don't get this point. You don't need any annotations to write ctfe-able code. Also, I think there were some efforts to make a template out of core.object.opEquals, in order to preserve the attributes. (Such that, as long as one doesn't work with plain Objects, the missing pure annotation would have no influence.)

Reply via email to