DMD 1.035 and 2.019 releases

Georg Wrede georg at nospam.org
Thu Sep 4 15:37:22 PDT 2008


Walter Bright wrote:
> Jarrett Billingsley wrote:
> 
>> Speaking of syntactical ambiguity, the expression
>>
>> S(1, 2, 3)
>>
>> can, right now, have one of three meanings:
>>
>> 1. A struct literal for struct S
>> 2. A call to S's static opCall
>> 3. An instantiation of S and a call to its ctor
>>
>> Even if opCall goes away, we'll still be left with the ambiguity of 
>> struct literal vs. ctor.  I'd really, really like to hear Walter's 
>> view on this but he has responded neither to the thread I posted on 
>> digitalmars.D nor the bugzilla ticket 
>> (http://d.puremagic.com/issues/show_bug.cgi?id=2170).
> 
> 
> If there's any constructor defined for S, then S(args) is a constructor 
> call.
> 
> If there's any opCall defined for S, then S(args) is an opCall call.
> 
> Otherwise, it's a struct literal.

This might be fluent for the "people in the know", but for everybody 
else (which is /everybody else/, until they become "people in the know") 
it is just distracting, ambiguous, and prone to misinterpretation. And 
this simply makes it take more time when debuggin the works of your team.

Something ought to be done here.



More information about the Digitalmars-d-announce mailing list