logic: template parameter as child nodes

* when generating the name hierarchy of a template parameter the parameter name is now an extra element that follows the template class/struct/function element.
This commit is contained in:
malte_langkabel
2016-01-26 12:08:07 +01:00
parent b57ea3addb
commit ada00cc627
2 changed files with 188 additions and 186 deletions
@@ -44,19 +44,7 @@ NameHierarchy CxxDeclNameResolver::getDeclNameHierarchy()
if (declName)
{
if ((clang::isa<clang::NonTypeTemplateParmDecl>(m_declaration) ||
clang::isa<clang::TemplateTypeParmDecl>(m_declaration) ||
clang::isa<clang::TemplateTemplateParmDecl>(m_declaration)) &&
contextNameHierarchy.size() > 0)
{
std::string lastContextElementName = contextNameHierarchy.back()->getFullName(); // TODO: what about the signature in this case?
contextNameHierarchy.pop();
contextNameHierarchy.push(std::make_shared<NameElement>(lastContextElementName + "::" + declName->getFullName()));
}
else
{
contextNameHierarchy.push(declName);
}
contextNameHierarchy.push(declName);
}
}
return contextNameHierarchy;