Revised RFC on range design for D2

Benji Smith dlanguage at benjismith.net
Tue Sep 30 22:58:20 PDT 2008


Bill Baxter wrote:
> On Tue, Sep 30, 2008 at 3:36 AM, Steven Schveighoffer
> <schveiguy at yahoo.com> wrote:
>>> There is no ambiguity either case. You evaluate Stdout.newline. The
>>> evaluation yields a value of some type. Then you evaluate formatln against
>>> that value.
>> OK, then tell me what this does:
>>
>> x.y.z();
>>
>> Is y a property/field of x or a function call with no args?  I see a benefit
>> to being able to understand a line of code without requiring lots of extra
>> context.  I have to do less lookups of the source of a function or property.
> 
> The problem with this argument is that unless you disallow properties
> altogether, you still won't know whether y is actually a field or a
> call to a property method without looking it up.
> 
> --bb

One thing that I've found especially annoying about the current 
implementation is this:

   x.y = 3; // Working code
   x.y += 3; // Broken, if x.y is actually a function
   x.y = x.y + 3; // Ugly work-around

I've been bitten by this at least a dozen different times. Having a real 
property syntax would eliminate cases like that.

--benji


More information about the Digitalmars-d-announce mailing list