DIP23 draft: Fixing properties redux

deadalnix deadalnix at gmail.com
Sun Feb 3 18:28:38 PST 2013


On Monday, 4 February 2013 at 02:18:08 UTC, David Nadlinger wrote:
> On Monday, 4 February 2013 at 01:30:49 UTC, Andrei Alexandrescu 
> wrote:
>> I think most, if not all, detailed rules derive from these.
>
> One does not, the strange special case for taking the address 
> of a property.
>
> I'd REALLY urge you to explore alternative solutions, such as 
> the one proposed by Andrej, before introducing an abomination 
> like distinguishing between "&a" and "&(a)".
>
> There is no way such strange behavior could be explained in a 
> way that is coherent with the rest of the language.
>
> I found that when you are working on a complex problem and have 
> a solution that seems to work for everything except a little 
> detail, the best approach often is to step back a bit and have 
> an entirely fresh look at that area again, but now taking the 
> rest of your design as a given.
>

The problem we are dealing with here isn't complex. It is made 
complex artificially.

We are trying to make @properties behave like fields, but hey in 
this case I want it to behave like a function . . . oh yeah so in 
this special case, I have to workaround, ho and here and here as 
well, oh damn, that is complicated.

Same goes when conflating the function with it's return value 
(which optional () is about).

> Introducing a rule by which parenthesizing an expression in a 
> way that does not change precedence suddenly causes a 
> difference in behavior certainly wouldn't be among the first 
> ideas coming to my mind this way.
>

By trying to make things easy, we miss that the important point 
is to make them simple.


More information about the Digitalmars-d mailing list