It is a bug ?
Du Liang
duliang.21 at 163.com
Wed May 6 22:01:35 PDT 2009
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!
More information about the Digitalmars-d
mailing list