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