Revised RFC on range design for D2

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Fri Sep 26 06:44:41 PDT 2008


Sergey Gromov wrote:
> In article <gbgu0h$5sq$1 at digitalmars.com>, SeeWebsiteForEmail at erdani.org 
> says...
>> Sergey Gromov wrote:
>>> I think that property function call feature in general adds an 
>>> unnecessary ambiguity to the language.  I'd prefer functions to be 
>>> callable only with regular function call syntax, and properties be 
>>> usable only with member access syntax.  The same stands for 'unified 
>>> function call' feature: if you want to inject a method into an 'array of 
>>> chars' class you do so explicitly, and only the member call syntax is 
>>> allowed on that method.  Otherwise code tends to become ambiguous and 
>>> unreadable.
>> Experience with other languages has shown that using identical syntax 
>> for genuine member access and member function access helps 
>> maintainability because it allows a type implementer to switch back and 
>> forth between implementing a property as a direct member or as a 
>> function, transparently to that type's use.
> 
> Sorry I may have been unclear.  I'm not against interchangeability 
> between properties and property accessor methods.  I'm against using 
> property accessors as methods, and against using methods as if they were 
> property accessors.  The current situation actually breaks 
> maintainability because after somebody used .length() you cannot replace 
> it with a public variable anymore.  And you cannot replace
> 
> public void delegate(int) foo;
> 
> with an accessor method because the code 'instance.foo();' will stop 
> working as it used to.

I am a bit confused about terminology. Could you please clarify with 
examples what you mean, also defining all terms (e.g. what does 
"property accessor" mean?) Thanks.

Andrei


More information about the Digitalmars-d-announce mailing list