On Thu, Jan 05, 2023 at 02:32:17PM +0000, Dom DiSc via Digitalmars-d-learn wrote: [...] > I think this is really another usecase for @property: we should forbid the > function call syntax for them (so one needs to use them like a variable). [...] > Properties are not functions. If you want a function, use a function. If > @properties would be the same as functions, they are superfluous garbage. > Either make something useful out of them or remove them.
We have been talking about deprecating and removing @property for years now. Somebody just has to bite the bullet and push it through the deprecation process... ... OR come up with a DIP that implements @property in a sane, fully worked out way, not the half-hearted, incomplete, leaky implementation that it is today. // In my own code, I've stopped bothering with @property for the most part. Parentheses are optional for argumentless functions in general anyway, so there's really no need to write @property on anything. This works: struct S { private int _x; int x() { return _x; } } S s; int y = s.x; The only significant thing @property does right now is to add confusion when the unary & operator is used or when the property function returns a delegate. Not worth the trouble, I say. Just don't use @property at all, plain old member functions work just fine. T -- Some ideas are so stupid that only intellectuals could believe them. -- George Orwell