https://dpaste.dzfl.pl/67691db19ce8

Just delete 9 to 29 for the code to work. Note that none of the code effects the output but D gives strange errors. In my code it says the interface members are not implemented(which they are)

                foreach (member; __traits(allMembers, T))
                {
                        static foreach (overload; MemberFunctionsTuple!(T, 
member))
                        {
static if (__traits(getProtection, __traits(getMember, T, member)) == "public")
                                {
                                        foreach(a; __traits(getAttributes, 
overload))
static if (is(typeof(a) == string) && a.length > 0 && a == "InterfaceMembers")
                                                {               
                                                        string q;
                                                        foreach(b; 
__traits(getAttributes, overload))
static if (is(typeof(b) == string) && b.length > 0 && b == "InterfaceMembers")
                                                                        
continue;
                                                                else
                                                                        q ~= 
"@("~b.stringof~") ";

                                                        //s ~= 
"\t"~q~cloneFunction!(overload, T) ~ ";\n";
                                                }
                                }
                        }
                }

is somehow breaking the interface. It should have no effect on it at all. Seems like a bug to me.

Reply via email to