Am Sun, 11 Oct 2015 01:54:39 +0000 schrieb deadalnix <[email protected]>:
> On Saturday, 10 October 2015 at 02:57:03 UTC, Meta wrote: > > On Saturday, 10 October 2015 at 02:31:51 UTC, Martin Nowak > > wrote: > >> That's what I meant, weird use-case, at best it's a callback > >> better/setter. > >> I've never written such code, but even if you would, the 2 > >> pairs of parens are only a tiny problem for generic code, > >> nothing to warrant the invasive language feature @property is. > > > > I don't know how much metaprogramming-heavy generic code you've > > written, but I can say from first-hand experience that there is > > such a thing as Hell, and it is called Optional Parens. > > > > Jokes aside, I've finally fixed (read: worked around using > > awful hacks) a bug where the compiler was complaining about > > either "Type.memberFunction is not callable with arguments ()" > > or "Need 'this' for Type.memberFunction". I love optional > > parens in regular code, especially range-based code (doesn't > > everybody?), but I desperately want a way to ensure that the > > symbol that I'm trying to pass to a template function won't be > > interpreted as a function call instead. > > To the next person that is going to say this is overblown, I ran > into such bugs more than once in phobos. > > So, unless we expect most D developer to be better than phobos > contributor, that is a problem. > We even have such a problem in object.d: https://github.com/D-Programming-Language/druntime/blob/master/src/object.d#L1461 I remember somebody asking in D.learn why his custom test runner did not work. Problem was related to wrong parenthesis: The user wrote mod.unitTest() instead of mod.unitTest()() IIRC. Unfortunately I can't find the exact link right now.
