On Tuesday, January 29, 2013 17:06:32 H. S. Teoh wrote: > Why do you have to mark naked variables as @property? Isn't that > redundant?
In order to restrict what you can do with it to the subset of operations that you can do with a property function. In particular, taking its address would need to be illegal, as that won't work with a property function (or if it did, it would return a different type). It would be impossible to replace a normal variable with a property function without risking breaking code, because there are operations that you can normally do on a variable that couldn't possibly be implemented with a function (such as taking its address). But if you mark it to restrict what it can do, then you could swap it out with a function later without the risk of breaking code (which is one of the main reasons for having properties in the first place). @property doesn't currently do this, but it could, and if we don't have something like that, then it'll never be safe to swap variables and property functions. - Jonathan M Davis
