[Issue 20833] New: Template members prevent __traits(getOverloads) from working properly

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri May 15 13:27:44 UTC 2020


https://issues.dlang.org/show_bug.cgi?id=20833

          Issue ID: 20833
           Summary: Template members prevent __traits(getOverloads) from
                    working properly
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: regression
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: rmanth at gmail.com

struct P
{
    void foo(T)(T t) {}
    void foo(long l) {}

    this(T)(T t) {}
    this(long l) {}
}

static assert(__traits(getOverloads, P, "foo").length == __traits(getOverloads,
P.init, "foo").length);
static assert(__traits(getOverloads, P, "__ctor").length ==
__traits(getOverloads, P.init, "__ctor").length);


Both static asserts fail. It worked in dmd-2.080.1 and stopped working in
dmd-2.081.0.

--


More information about the Digitalmars-d-bugs mailing list