Finding all the interfaces and their inheritance relationships at runtime
Jean-Louis Leroy via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Jul 3 21:05:11 PDT 2017
On Monday, 3 July 2017 at 22:34:51 UTC, FoxyBrown wrote:
> On Monday, 3 July 2017 at 20:45:19 UTC, bauss wrote:
>> On Monday, 3 July 2017 at 13:54:42 UTC, Jean-Louis Leroy wrote:
>>> I know how to find all the classes:
>>>
>>> foreach (mod; ModuleInfo) {
>>> foreach (c; mod.localClasses) {
>>> // use c.base to construct inheritance graph
>>> }
>>> }
>>>
>>> Can I do the same with all the interfaces? Looking at
>>> object.d gives no clue...
>>
>> Is there a reason you need to do it with runtime and can't use
>> __traits?
>
> He didn't say *with* runtime but *at*. Changes the whole
> meaning ;)
It's OK I found how to achieve what I want. I'll enumerate the
classes an dfrom there work my way down via ClassInfo.interfaces.
It turns out that Interface.classinfocontains the interface's
inherited interfaces; the 'classinfo' name is a bit misleading
though...
More information about the Digitalmars-d-learn
mailing list