#define bar float
#define FOO(a) (bar)(a)
Is currently translated to this:
extern (C):
alias bar = float;
extern (D) auto FOO(T)(auto ref T a)
{
return bar();
}
But should be translated to:
extern (C):
alias bar = float;
extern (D) auto FOO(T)(auto ref T a)
{
return cast(bar) a;
}