Unless I misunderstand something this shouldn't compile. But it compiles
fine in DMD 2.012. Is this a bug?
import std.stdio;
class A
{
public:
int x = 0;
void setX(int nx) const { x = nx; }
}
void foo(const A a) { a.setX(1); }
int main(char[][] args)
{
A a = new A;
foo(a);
writefln(a.x);
return 0;
}