Re: Getting constructor's metadata

2009-10-09 Thread Max Samukha
On Thu, 08 Oct 2009 18:46:08 -0400, Christopher Wright
 wrote:

>Max Samukha wrote:
>> Is it possible to get types or aliases of all constructors of a class
>> in D2?
>
>No.
>
>__traits has some random functionality in this regard. It has a command 
>getVirtualFunctions which only returns virtual overloads. By "virtual", 
>we mean "appears in vtbl". So any non-private, non-static overload will 
>show up.

Yeah, I know about limitations of __traits. And I don't understand why
virtual functions are special-cased. If it is a temporary hack then I
don't understand why it is in the specification.

>
>Constructors do not appear in any object vtbl. It would be kind of odd 
>if they did.
>
>There's a patch to add getOverloads to __traits. It would do what you 
>want. But I doubt it works on DMD >2.020.

That is very bad. I hoped for some clever workaround. Really don't
want to rely on a patched compiler. Probably, will have to wait
another couple of years.


Re: Getting constructor's metadata

2009-10-08 Thread Christopher Wright

Max Samukha wrote:

Is it possible to get types or aliases of all constructors of a class
in D2?


No.

__traits has some random functionality in this regard. It has a command 
getVirtualFunctions which only returns virtual overloads. By "virtual", 
we mean "appears in vtbl". So any non-private, non-static overload will 
show up.


Constructors do not appear in any object vtbl. It would be kind of odd 
if they did.


There's a patch to add getOverloads to __traits. It would do what you 
want. But I doubt it works on DMD >2.020.


Getting constructor's metadata

2009-10-08 Thread Max Samukha
Is it possible to get types or aliases of all constructors of a class
in D2?