DIP28, on properties, availabel for destruction as well
deadalnix
deadalnix at gmail.com
Wed Feb 27 19:00:29 PST 2013
On Wednesday, 27 February 2013 at 20:09:51 UTC, Jacob Carlborg
wrote:
> On 2013-02-27 16:46, deadalnix wrote:
>> Here come the sister of DIP27 : DIP28
>> http://wiki.dlang.org/DIP28 .
>>
>> It address specifically properties. A 3rd one is coming on
>> delegate. As
>> for DIP27, the goal is to go aggressively for simplicity.
>
> What happens if you do:
>
> auto a = b.setter = 3;
>
> I see two alternatives:
>
> A. It's rewritten to this:
>
> auto __tmp = 3;
> b.setter = 3;
> auto a = __tmp;
>
> B. It's rewritten to this:
>
> b.setter = 3;
> auto a = b.getter;
>
> I prefer B.
>
The proposal is to rewrite that to auto a = b.setter(3);
Its value is whatever the setter returns.
> What happens if you do:
>
> struct Point
> {
> int x;
> int y;
> }
>
> class Widget
> {
> @property Point getter();
> @property Point setter(Point);
> }
>
> auto w = new Widget;
> w.getter.x = 3;
>
Error, w.getter is not an lvalue.
> I would prefer if that gets rewritten to:
>
> Point __tmp = w.getter;
> __tmp.x = 3;
> w.getter = __tmp;
That would be an error as well, for the same reason.
More information about the Digitalmars-d
mailing list