string mixin output works when directly used but when generator is used D fails

DigitalDesigns DigitalDesigns at gmail.com
Tue May 29 21:19:01 UTC 2018


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.


More information about the Digitalmars-d-learn mailing list