On Wed, 23 Jan 2013 22:59:38 +0100
"monarch_dodra" <monarchdo...@gmail.com> wrote:
> 
> --------
> IMO: We should be able to keep the optional parenthesis for all 
> functions (except maybe those that return delegates).

I'm not a fan of that as I think the need for special-casing of
functions returning delegates is not worth what I still don't see as a
benefit.

Side note: I know at least one person here likes this [ ;) ], but I
really hate code like:

foo.doStuff;
foo.makeFizzBar;
foo.updateBlorg;

Have to do a double-take every time. Just looks like a bunch of
no-ops, and sets off mental red flags every single time.

> Things that 
> are marked as property, however, MUST respect two things:
> 1) properties should *NEVER* have parentheses.

Agreed

> 2) you should not be able to take the address of a property 
> function.

Agreed

One could argue that you should be able to take the address of a
property, just like any other function, and to end up with a delegate.
But if you need to do that you can just use a lambda. It may be an
extra function call and indirection, but that's optimizable out, right?
That way you get to eat your delegate cake and still have no accedental
surprises arising from "&foo.bar" being an unexpected type.


> 3) The "a.prop = value" should call "a.prop(value)" IFF prop is 
> declared property.
> 

Agreed

I would also add:

4) Setters must be called like "a.prop = value", never "a.prop(value)"

5) Finally get rid of the damn -property switch (or maybe just make it
a no-op for build script backwards-compatibility, at least for a few
releases)


Reply via email to