Andrei, I think there's a lurking bug in unaryFunImpl, on line 53: enum testAsExpression = "{ ElementType "~parmName ~"; return ("~fun~");}()"; enum testAsStmts = "{"~ElementType.stringof ~" "~parmName~"; "~fun~"}()";
Notice the second enum, I think it's missing a ";" after "~fun~". It might need changing the last chars from "}()"; to ";}()"; That enum is never used in code which explains why the typo hasn't been caught yet.