Modified from an example by Comrad in D.learn. struct A { double x; } @property ref double y(ref A a) { return a.x; } void main() { A a1; a1.y() = 2.0; // OK a1.y = 2.0; // Error } DMD 2.059head gives: test.d(10): Error: no property 'y' for type 'A', did you mean 'x'?
https://github.com/D-Programming-Language/dmd/pull/812
Maybe you have gone a bit too much far with your fix, Kenji Hara. In my example code here I used @property: @property ref double y(ref A a) { But your patch allows that syntax even without @property. Your patch allows _very_ nice and noise-free code like: [1, 2, -3, 4].filter!(x => x > 0).map!(x => x ^^ 0.2).writeln; But I think it undermines the meaning and usefulness of the -property compiler switch and the meaning of @property. So I suggest to think a bit more about this, to keep the nice things, and to not throw away two baby waters.
See also Bug 7722 and Bug 7723