[dmd-beta] dmd 1.062 and 2.047 beta

Fawzi Mohamed fawzi at gmx.ch
Sun Jun 13 09:50:10 PDT 2010


On 13-giu-10, at 18:12, Walter Bright wrote:

> Can you put it on bugzilla, please?

	http://d.puremagic.com/issues/show_bug.cgi?id=4304

>
> Fawzi Mohamed wrote:
>> thinking more about this maybe it is not a bug but a feature :)
>>
>> Indeed it is not clear which value of defaultA should be used, and  
>> what should happen if defaultA is reassigned.
>>
>> It did seem to work correctly: the value after the static  
>> initializer was used, but maybe in some cases the value before the  
>> static initializer would be used.
>>
>> If this is the case it is strange that defining a function with  
>> such a default argument works....
>>
>> Fawzi
>> On 13-giu-10, at 16:23, Fawzi Mohamed wrote:
>>
>>> I have found the following regression in dmd 1.062 (works with  
>>> 1.058).
>>>
>>> Fawzi
>>>
>>> module bug1;
>>>
>>> class A{
>>>   int f(int a){
>>>       return a;
>>>   }
>>>   static A defaultA;
>>>   static this(){
>>>       defaultA=new A();
>>>   }
>>> }
>>>
>>>
>>> void TT(T)(T rIn,
>>>   int delegate(int) arg=&A.defaultA.f)
>>> {
>>>   arg(2);
>>> }
>>>
>>> void instantiateTT(){
>>>   TT!(real)(4);
>>> }
>>>
>>> // with 1.062
>>> // bug1.d(15): Error: cannot inline default argument &defaultA.f


More information about the dmd-beta mailing list