On Thursday, 17 May 2012 at 10:30:26 UTC, Jacob Carlborg wrote:
Does it work if the lambda is passed to a function:
void foo (int delegate (int x) dg)
{
wirteln(__traits(codeof, dg);
}
foo(x => x + 1);
Unforutnately, no. As written the lambda is a runtime parameter,
so there is no way the trait can get the actual function code.
Instead, all that will print is the signature of the delegate.
If that were a template parameter, it would theoretically be
possible to print the lambda expression, but as currently
implemented it doesn't.