logic: recording symbol kinds cxx name specifiers (e.g. "std" in "std::string")

This commit is contained in:
malte_langkabel
2017-02-10 17:09:02 +01:00
parent b13dbf2f2d
commit 10e9a4a70d
7 changed files with 129 additions and 50 deletions
+20 -2
View File
@@ -281,8 +281,26 @@ bool CxxAstVisitor::TraverseTemplateTemplateParmDecl(clang::TemplateTemplateParm
bool CxxAstVisitor::TraverseNestedNameSpecifierLoc(clang::NestedNameSpecifierLoc loc)
{
// just skip all qualifiers (for now)
return true;
bool ret = true;
if (loc)
{
for (auto it = m_components.begin(); it != m_components.end(); it++)
{
(*it)->beginTraverseNestedNameSpecifierLoc(loc);
}
//todo: call method of base class...
if (clang::NestedNameSpecifierLoc prefix = loc.getPrefix())
{
ret = TraverseNestedNameSpecifierLoc(prefix);
}
for (auto it = m_components.rbegin(); it != m_components.rend(); it++)
{
(*it)->endTraverseNestedNameSpecifierLoc(loc);
}
}
return ret;
}
bool CxxAstVisitor::TraverseConstructorInitializer(clang::CXXCtorInitializer* init)