On Friday, January 25, 2013 00:19:28 Walter Bright wrote: > On 1/24/2013 5:15 PM, kenji hara wrote: > > 1. Optional parentheses for normal functions should work shallowly IMO. > > 2. Optional parentheses for property functions should not work. Applying > > () for property function name always applied to its returned value. > > > > #1 is a ratification of current behavior. It allows the combination of > > UFCS and removing redundant ()s. > > #2 is a breaking change. If we need it, community consent is required. > > There is a way to do #2 without breaking existing code. > > Create a new property attribute, say, @prop. Imbue it with the new behavior. > Leave the old @property as it is, and let it cycle through the usual > warning, deprecation, removal process.
Considering that it's always been the plan that @property would be enforced such that any use of it would be illegal with parens (it's explicitly among the things tha TDPL says about @property), the expectation of pretty much every D programmer is that that's how @property functions are to be used, and it shouldn't come as any surprise when that's enforced. As such, I really don't think that it's a big deal if we simply start enforcing that @property functions be called without parens. And if you're really concerned about breakage, then we could start with making it a warning rather than an error. But I wager that in almost all cases, any such warning or error would be triggered by a mistake rather than someone intentially using parens with an @property function. - Jonathan M Davis
