4
我正在修改Clang工具模板(如描述here)以在我的代碼中搜索特定的方法調用。爲了稍後重寫該調用,我想獲取調用該方法的參數的類型,以及該方法被調用的對象的類型。從clang匹配回調中獲取方法調用的參數
我設法找到該回調以下內容的匹配:
class AddListenerPrinter : public MatchFinder::MatchCallback
{
public :
virtual void run(const MatchFinder::MatchResult &Result) {
if (const auto *FS = Result.Nodes.getNodeAs<clang::MemberExpr>("ListeningBound"))
{
FS->dump();
}
}
};
打印出:
MemberExpr 0x7fb05b07b948 '<bound member function type>' .addListener 0x7fb05b077670
`-MemberExpr 0x7fb05b07b918 'class MyCore' lvalue ->mCore 0x7fb05b078e30
`-CXXThisExpr 0x7fb05b07b900 'class MyComponent *' this
現在,我找不到任何方法來檢索對象的類型方法被調用(這裏class MyCore
)或方法參數的類型(這裏class MyComponent
)。
我該怎麼做?