Need DMD AST expertise

Jacob Carlborg via Digitalmars-d digitalmars-d at puremagic.com
Mon Jun 20 07:42:22 PDT 2016


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)

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list