www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 19920] New: __trait(parent, ...) broken with extern(C++, "ns")

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

          Issue ID: 19920
           Summary: __trait(parent, ...) broken with extern(C++,"ns")
                    nested in scopes
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: iamthewilsonator hotmail.com

struct Foo
{
    extern(C++, "namespace")
    {
        static void bar();
    }
}

alias Alias(alias a) = a;
alias Alias(T) = T;

static assert(is(Alias!(__traits(parent, bar)) == Foo));

somehow passes

static assert(is(Alias!(__traits(parent, Foo.bar)) == Foo));

fails, as does

Foo.bar();

See also https://github.com/dlang/dmd/pull/9912

--
May 29 2019