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)
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/17676 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB