Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Commit e68e3fa

Browse files
committed
use traits.d(externDmangle)
1 parent f7378d4 commit e68e3fa

File tree

1 file changed

+3
-13
lines changed

1 file changed

+3
-13
lines changed

src/core/internal/traits.d

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -88,19 +88,9 @@ private template substInoutForm(T)
8888
/// used to declare an extern(D) function that is defined in a different module
8989
template externDFunc(string fqn, T:FT*, FT) if(is(FT == function))
9090
{
91-
static if (is(FT RT == return) && is(FT Args == function))
92-
{
93-
import core.demangle : mangleFunc;
94-
enum decl = {
95-
string s = "extern(D) RT externDFunc(Args)";
96-
foreach (attr; __traits(getFunctionAttributes, FT))
97-
s ~= " " ~ attr;
98-
return s ~ ";";
99-
}();
100-
pragma(mangle, mangleFunc!T(fqn)) mixin(decl);
101-
}
102-
else
103-
static assert(0);
91+
alias _wrap(alias T) = T; // fool the parser
92+
93+
alias externDFunc = _wrap!(__traits(externDmangle, fqn, FT));
10494
}
10595

10696
template staticIota(int beg, int end)

0 commit comments

Comments
 (0)