Need DMD AST expertise

Guillaume Chatelet via Digitalmars-d digitalmars-d at puremagic.com
Mon Jun 20 07:59:20 PDT 2016


On Monday, 20 June 2016 at 14:42:22 UTC, Jacob Carlborg wrote:
> On 2016-06-20 16:06, Guillaume Chatelet wrote:
>
>> Thx Johan. I'm confused though: `FuncDeclaration.linkage` is 
>> the linkage
>> for the function (which I already know is C++ function since 
>> I'm
>> mangling it) but I need the linkage for the Parameter. 
>> Parameter has a
>> Type but I can't get the linkage from here. What did I miss?
>
> 1. Check if the type is a class. There's a field "ty" in Type
> 2. If it's a class, cast it to TypeClass
> 3. TypeClass has a field "sym" of type ClassDeclaration
> 4. ClassDeclaration has three fields: "com", "cpp" and "objc". 
> I think these fields indicate if the class declaration has 
> extern(C++), extern(Objective-C) and so on. If none of them are 
> true, it's standard extern(D)

Pretty cool. Thx Jacob!

Anyone has a suggestion for my second problem?

If not I'll have to do some kind of mapping between the template 
args and the parameters...


More information about the Digitalmars-d mailing list