<p>I have thought in long term that, in D, "proerty" is just a syntactic rerwiting rule of  function call. It is much reasonable abstraction to me.</p>
<p>So, using __trait is overkill.</p>
<p>Kenji Hara</p>
<div class="gmail_quote">2013/02/05 0:45 "Timon Gehr" <<a href="mailto:timon.gehr@gmx.ch">timon.gehr@gmx.ch</a>>:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 02/04/2013 04:08 PM, kenji hara wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2013/2/4 Timon Gehr <<a href="mailto:timon.gehr@gmx.ch" target="_blank">timon.gehr@gmx.ch</a> <mailto:<a href="mailto:timon.gehr@gmx.ch" target="_blank">timon.gehr@gmx.ch</a>>><br>
<br>
    On 02/04/2013 03:38 PM, kenji hara wrote:<br>
<br>
        I think this is necessary feature for the D's function and property<br>
        semantics.<br>
<br>
<br>
    Why?<br>
<br>
<br>
Because, "property" is one of D-specific feature.<br>
<br>
In D, "property" is directly translated to function call. So, we should<br>
get balance between two requirements:<br>
1. property should be treated as its returned type.<br>
2. property should be distinguished from raw field. (For example,<br>
serialization library should recognize it)<br>
<br>
</blockquote>
<br>
This is what __traits are for.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Address expression is _only_one_ built-in feature to make a callable<br>
object from function symbol.<br>
</blockquote>
<br>
Property symbols are not to be treated like function symbols syntactically. That is the point. Otherwise we may as well get rid of properties.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
So this "special feature" is enough reasonable to me.<br>
<br>
...<br>
</blockquote>
<br>
"special features" are usually not reasonable.<br>
</blockquote></div>