www.digitalmars.com         C & C++   DMDScript  

D.gnu - _arguments in constructor

reply Fredrik Olsson <peylow treyst.se> writes:
Repost from D.bugs, as Dave confirmed that it does not affect dmd 0.144 
on win nor linux. So I guess it goes as a more GDC specific bug.

This example should not assert I believe:

===
module main;

class Foo {
   uint args;
   this(...) {
     args = _arguments.length;
     foreach(TypeInfo typeInfo; _arguments) {
       typeInfo.print();
     }
   }
}

int main(char[][] args) {
   auto foo = new Foo(1, 2, 3);
   assert(foo.args == 3);
   return 0;
}
===

I compile with GDC 0.17, om Mac OS X 10.4.4.

The output is:
TypeInfo[]
int
int
int

So it seams that the hidden variable _arguments is included in itself 
for constructors.

// Fredrik Olsson
Jan 26 2006
parent Thomas Kuehne <thomas-dloop kuehne.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fredrik Olsson schrieb am 2006-01-26:
 Repost from D.bugs, as Dave confirmed that it does not affect dmd 0.144 
 on win nor linux. So I guess it goes as a more GDC specific bug.

 This example should not assert I believe:

===
 module main;

 class Foo {
    uint args;
    this(...) {
      args = _arguments.length;
      foreach(TypeInfo typeInfo; _arguments) {
        typeInfo.print();
      }
    }
 }

 int main(char[][] args) {
    auto foo = new Foo(1, 2, 3);
    assert(foo.args == 3);
    return 0;
 }
===

 I compile with GDC 0.17, om Mac OS X 10.4.4.

 The output is:
 TypeInfo[]
 int
 int
 int

 So it seams that the hidden variable _arguments is included in itself 
 for constructors.
Added to DStress as http://dstress.kuehne.cn/run/v/variadic_argument_12_A.d http://dstress.kuehne.cn/run/v/variadic_argument_12_B.d http://dstress.kuehne.cn/run/v/variadic_argument_12_C.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFD/sH53w+/yD4P9tIRAmtWAJ0dIL5KxKHNWRr0MHsVDlptm27YHACgrOMK fjpk8hg243FKSgx41GYAuSw= =fY5H -----END PGP SIGNATURE-----
Feb 23 2006