Bug 5823 – @property call syntax restriction not implemented

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2011-04-08T15:02:00Z
Last change time
2011-06-23T13:45:36Z
Assigned to
nobody
Creator
michel.fortin

Comments

Comment #0 by michel.fortin — 2011-04-08T15:02:26Z
(Initially posted on the phobos mailing list: <http://lists.puremagic.com/pipermail/phobos/2011-April/004768.html>) I made an experiment last month: I changed an "#if 0" to "#if 1" in the compiler source, one that was meant to enable proper enforcement of the property syntax. Then I went on an fixed a things everywhere to make everything compile and work. It turned out to be a colossal task to fix everything that needed fixing (a few things DMD but most problems coming from Phobos and Druntime), and after doing a lot of it I started working on other things and left the project untouched since then. I'd have preferred to present something finished, but given that I'm not sure when I'll work on it again I though it might be a good idea to let someone else take over (if someone wants to). Even if no one works on it, it might be interesting as a way to see how many things have been relying on the non-enforcement of @property. You can look at the "@property" branch in my dmd, druntime and Phobos forks on github to see what was affected by this change: DMD: <https://github.com/michelf/dmd/commits/%40property> Druntime: <https://github.com/michelf/druntime/commits/%40property> Phobos: <https://github.com/michelf/phobos/commits/%40property> Status: Druntime changes should be complete, Phobos is incomplete and I think I was stuck on a compiler bug triggered by this change when I stopped working on it last month, so there might be still a few things to fix in the compiler.
Comment #1 by bugzilla — 2011-06-23T12:05:43Z
Comment #2 by bearophile_hugs — 2011-06-23T13:45:36Z
A good step forward to remove one of the most visible (even if practically not so bad) warts of D. In few months, or a year, I hope to see this switch removed. By the way, I support a semantically clean approach on this, with no special cases: use @property if you want a property without (), or add () if you want a () function call syntax.