[dmd-beta] dmd 1.062 and 2.047 beta

Walter Bright walter at digitalmars.com
Sun Jun 13 09:12:38 PDT 2010


Can you put it on bugzilla, please?

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
>>
>> _______________________________________________
>> dmd-beta mailing list
>> dmd-beta at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/dmd-beta
>
> _______________________________________________
> dmd-beta mailing list
> dmd-beta at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-beta
>
>


More information about the dmd-beta mailing list