On 01/25/2013 01:12 AM, Andrei Alexandrescu wrote:
On 1/24/13 6:52 PM, Adam Wilson wrote:
On Thu, 24 Jan 2013 00:34:42 -0800, Walter Bright
<[email protected]> wrote:

This has turned into a monster. We've taken 2 or 3 wrong turns
somewhere.

Perhaps we should revert to a simple set of rules.

1. Empty parens are optional. If there is an ambiguity with the return
value taking (), the () go on the return value.

2. the:
f = g
rewrite to:
f(g)
only happens if f is a function that only has overloads for () and
(one argument). No variadics.

3. Parens are required for calling delegates or function pointers.

4. No more @property.

I just worked through this with Alexander Bothe (of Mono-D fame). Here
is what C# does.

public Action temp { get; set; }
public Action Event { get { return temp; } }
t.Event; //returns the delegate
t.Event(); //calls the delegate.

Simple, clean, clear, concise. No problems with optional parens.

(Action is a delegate in C#)

This looks essentially the same as Walter's proposal.

Andrei

Not at all. Walter's proposal just chooses the other option when stuff is "ambiguous" and adds a hideous special rule in case the empty argument list was obtained from an empty sequence.

Reply via email to