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