March 20
https://issues.dlang.org/show_bug.cgi?id=24443

          Issue ID: 24443
           Summary: Substitution failure for nested/member functions on
                    POSIX systems
           Product: D
           Version: D2
          Hardware: x86
                OS: Mac OS X
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: emmankoko519@gmail.com

this assertion fails as the parameter fails to substitute

extern (C++) struct A(T)
{
}

extern(C++) struct B(T)
{
}
extern (C++) struct G(key, value = A!(const(key)), alloc = B!(const(key)))
{
        void foo(ref const(key));
}
void main()
{
        int a;
        assert(G!(int).foo.mangleof ==  "_ZN1GIi1AIKiE1BIS1_EE3fooERS1_");
}

D's mangling: _ZN1GIi1AIKiE1BIS1_EE3fooERKi

--