On Sunday 06 February 2011 20:38:29 %u wrote:
> Hi,
>
> I was wondering, why are we allowed to omit parentheses when calling
> functions with no arguments, when they are not @properties? Is there a
> good reason for relaxing the language rules like this?
Because the compiler is not in line with TDPL yet. It used to be that @property
didn't even exist and _all_ functions which returned a value and took no
parameters could be used as a getter property and _all_ functions which
returned
void and took a single value could be used as a setter property. @property was
added so that it could be better controlled. However, while @property has been
added, the compiler has yet to be changed to enforce that @property functions
are called without parens and that non-@property functions are called with
them.
It will be fixed at some point, but it hasn't been yet.
- Jonathan M Davis