On Thursday, 11 July 2013 at 17:59:22 UTC, bearophile wrote:
Maxim Fomin:
My guess is that before 2.063 immutable int y was implicitly
static, but now it is per instance data which requires context
pointer which is deduced to be impure - that why compilation
fails (try placing static attribute). In other words, before
2.063 this was a function and now it is a delegate. And
delegates currently don't play well with
constness/immutability.
I think you are right. So is it right to ask D to infer such
delegate as pure?
Bye,
bearophile
I think delegate here can be allowed to be pure. However, I
wouldn't expect this issue to be fixed soon since it touches a
general problem of delegates vs. immutability problem. There were
many discussions and DIP but there is still no solution.