Comment #0 by bearophile_hugs — 2014-08-15T19:05:42Z
I suggest to add a trait that returns a tuple of all the functions called by a given function, including run-time functions.
void foo() {}
void bar() {}
void spam() { foo(); bar(); }
is(__traits(calledFunctions, spam) == TypeTuple!(foo, bar))
This is useful to implement in user code transitive function properties tagged with UDAs.
Optionally this trait too can be handy:
__traits(isRuntimeFunction, f)
Comment #1 by robert.schadek — 2024-12-13T18:24:02Z