<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/1/25 Jonathan M Davis <span dir="ltr"><<a href="mailto:jmdavisProg@gmx.com" target="_blank">jmdavisProg@gmx.com</a>></span><br><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im">On Thursday, January 24, 2013 22:24:58 Adam D. Ruppe wrote:<br>
> On Thursday, 24 January 2013 at 21:09:39 UTC, Adam Wilson wrote:<br>
> > The problem with @property isn't @property, it's D's<br>
> > insistence on optional parens.<br>
><br>
> No, this isn't a problem; function call syntax has nothing<br>
> whatsoever to do with @property because a property is NOT<br>
> logically a function!<br>
<br>
</div>D's insistance on optional parens _does_ cause problems with functions that<br>
return delegates, but @property itself isn't really affected by optional<br>
parens save for the visual ambiguity caused by optional parens.</blockquote><div> </div><div>I think that the "optional parentheses" feature for normal functions should always work in _shallowly_. Even if a function returns some callable object, "optional parentheses" should not applied to the return object recursively.</div>
<div><br></div><div>That means:</div><div>void delegate() foo() { ... }</div><div>void main() {</div><div>  auto x = foo();  // typeof(x) == void delegate()</div><div>  auto y = foo;    // typeof(y) == void delegate()</div>
<div>}</div><div><br></div><div>Kenji Hara</div></div></div></div>