schveiguy at gmail.com
Sun Sep 13 17:51:49 UTC 2020
On 9/13/20 1:25 PM, MrSmith wrote:
> On Sunday, 13 September 2020 at 15:12:00 UTC, Steven Schveighoffer wrote:
>> The first part of the change seems disruptive. If you just fix the
>> second part (that you can now retrieve all members of std), doesn't it
>> fix the problem?
> Main problem is that allMembers returns strings and you can't tell if
> member is an import from it. If it returned aliases then you could do
> is(m == module), etc.
It's always been string, and should always be.
But I don't know of another case where it returns something that can't
be passed to getMember. You should be able to use getMember on "std",
and then getMember on that with "stdio". Just like any other nested thing.
It would be just as confusing as if you had:
and __traits(allMembers, mod) contained "S.foo".
BTW, when I wrote that first response, I didn't realize that
__traits(allMembers, std) returns... a lot of stuff. the whole mechanism
seems like it doesn't do what I would expect.
More information about the Digitalmars-d-announce