Need DMD AST expertise

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


On Monday, 20 June 2016 at 13:50:45 UTC, Johan Engelen wrote:
> On Monday, 20 June 2016 at 12:33:31 UTC, Guillaume Chatelet 
> wrote:
>>
>>> class Expression;
>>> extern(C++) void foo(Expression);
>>
>> Question:
>> ---------
>> - How to I get the linkage for Expression from a 
>> FunDeclaration? This will ensure the added indirection is put 
>> only for the D classes, not the C++ ones. I tried looking at 
>> Parameter, ClassDeclaration or TypeClass but couldn't find it.
>
> A FuncDeclaration is a Declaration, which contains the field 
> `LINK linkage;`. That's the one you want.
>
> -Johan

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?


More information about the Digitalmars-d mailing list