Skip to content

Commit 2c70ab5

Browse files
committed
Dramatically faster to compile Tuple
1 parent ea1e9b2 commit 2c70ab5

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

std/typecons.d

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -535,16 +535,16 @@ if (distinctFieldNames!(Specs))
535535
string injectNamedFields()
536536
{
537537
string decl = "";
538-
foreach (i, name; staticMap!(extractName, fieldSpecs))
539-
{
540-
import std.format : format;
541-
542-
decl ~= format("alias _%s = Identity!(field[%s]);", i, i);
543-
if (name.length != 0)
538+
import std.conv : to;
539+
static foreach (i, val; fieldSpecs)
540+
{{
541+
auto si = to!string(i);
542+
decl ~= "alias _" ~ si ~ " = Identity!(field[" ~ si ~ "]);";
543+
if (val.name.length != 0)
544544
{
545-
decl ~= format("alias %s = _%s;", name, i);
545+
decl ~= "alias " ~ val.name ~ " = _" ~ si ~ ";";
546546
}
547-
}
547+
}}
548548
return decl;
549549
}
550550

0 commit comments

Comments
 (0)