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.

Reply via email to