It is a bug ?

grauzone none at example.net
Thu May 7 04:32:55 PDT 2009


Du Liang wrote:
> grauzone Wrote:
> 
>> Denis Koroskin wrote:
>>> On Wed, 06 May 2009 19:33:03 +0400, Jarrett Billingsley <jarrett.billingsley at gmail.com> wrote:
>>>
>>>> On Wed, May 6, 2009 at 10:06 AM, Du Liang <duliang.21 at 163.com> wrote:
>>>>
>>>>>        int[] arrB = [2,2,2]; // arrB is static in[]  or bug ?
>>>> Declaring the variable like this uses a single array for all instances
>>>> of AB.  You should initialize it in this() instead, or put "arrB =
>>>> arrB.dup;" in this().
>>> I believe this is a horrible inconsistency. It shouldn't be allowed in first place, because typeof([2,2,2]) is immutable(int)[] in this context.
>> DWIM would be to let the compiler automatically move these instructions 
>> into all ctors.
>>
>> class A {
>>     int[] arrB = [2,2,2];
>>     X x = new X();
>>     this() {
>>         code1();
>>     }
>>     this(int) {
>>         code2();
>>     }
>> }
>>
>> would be transformed into
>>
>> class A {
>>     int[] arrB;
>>     X x;
>>     this() {
>>         arrB = [2,2,2];
>>         x = new X();
>>         code1();
>>     }
>>     this(int) {
>>         arrB = [2,2,2];
>>         x = new X();
>>         code2();
>>     }
>> }
> 
> Thanks!

Um... Maybe I should clarify: it does NOT work like that right now! My 
post was more like a feature request.



More information about the Digitalmars-d mailing list