The following program compiles, and does what you'd expect:
struct A { int a; } pure int func( ref A a ) { return a.a += 3; }As far as I can tell, however, it shouldn't. I don't see how or why func can possibly be considered pure, as it changes a state external to the function.
What am I missing? Or is this just a compiler bug? Shachar