On 2/25/22 16:00, mw wrote:

> only one "foo" is returned, how do I get the signature info of these two
> different methods? (I'm trying to do some introspection of D code, is
> this possible?)

I will let others to correct me but getOverloads is what I would start to struggle with myself:

import std.stdio;

class B {
  void bar() {}
}

class D : B
{
    this() { }
    ~this() { }
    void foo() { }
    int foo(int) { return 0; }
}

void main()
{
  foreach (member; __traits(allMembers, D)) {
    foreach (overload; __traits(getOverloads, D, member)) {
      writefln!"%s: %s"(member, typeof(overload).stringof);
    }
  }
}

There are many other traits that may help untangle everything but I am not sure.

Ali

Reply via email to