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