On Sunday, 3 February 2013 at 08:16:08 UTC, Andrei Alexandrescu wrote:
In brief:

* Optional parens stay.


This syntax sugar only helps in chained-UFCS calling. Why allowing it everywhere, that is even if the function's name is not followed by a dot?

like this: Obj1.action1.action2.action3(); It is clearer than Obj1.action1().action2().action3(); and, still, does not allow something like Obj1.action1; requiring an Obj1.action1(); instead.

* Just mentioning a function or method without parens does NOT automatically take its address. (This is a change from the current behavior.)

If you stick to the above "optional only if followed by a dot"-paradigm, you could maintain the behavior, except in that UFCS-chains, where it doesn't matter anyway what mentioning a function or method without parens returns, since one assumes invocation in this kind of chains.

* Read properties (using @property) work as expected with the mention that they may NOT be called with the parens. Any parens would apply to the returned value.

And if the returned value is a parameterless function, shouldn't that be callable without parens?

* Write properties (using @property) may only be used in the assignment form (no function-style call allowed).

Reply via email to