Am Sun, 11 Oct 2015 01:54:39 +0000
schrieb deadalnix <deadal...@gmail.com>:

> 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.

Reply via email to