On Monday, 18 July 2016 at 21:12:38 UTC, Meta wrote:
On Monday, 18 July 2016 at 13:00:16 UTC, Lodovico Giaretta
wrote:
As per title, is it possible to iterate all visible symbols of
the current module and of all imported modules and packages?
My aim is to find everything in scope that has a specific UDA.
module foo;
import std.stdio, std.array, std.algorithm;
void bar(){}
struct S{}
void main()
{
// prints ["object", "std", "bar", "S", "main"]
// how do I discover that "std" is a package?
writeln([__traits(allMembers, foo)]);
// prints ["object", "core", "std", "KeepTerminator",
"GCC_IO", ... ]
// strange thing: it looks the same even if I remove all
imports other than std.stdio
writeln([__traits(allMembers, foo.std)]);
}
Thank you in advance.
This answer to a similar question on StackOverflow may be
useful:
http://stackoverflow.com/questions/25555329/d-finding-all-functions-with-certain-attribute/25560800#25560800
Wow!
Looks exactly what I was looking for. I'll give this a try as
soon as possible.
Thank you.