Property rewriting; I feel it's important. Is there still time?

Steven Schveighoffer schveiguy at yahoo.com
Wed Mar 10 13:14:21 PST 2010


On Tue, 09 Mar 2010 22:48:08 -0500, Chad J  
<chadjoan at __spam.is.bad__gmail.com> wrote:

> I speak of the property rewriting where an expression like
>
>     foo.prop++;
>
> is rewritten as
>
>     auto t = foo.prop();
>     t++;
>     foo.prop(t);
>
>

I think this is fine as long as we don't take it to the extreme.  That is,  
I don't want to see this happening:

foo.prop1.prop2++;

is rewritten to

auto p1 = foo.prop1;
auto p2 = p1.prop2;
p2++;
p1.prop2 = p2;
foo.prop1 = p1;

I think one level of lowering is enough to handle the most common cases.

Of course, if a property returns an lvalue, then it should just work.

-Steve



More information about the Digitalmars-d mailing list