logic: indexer fixes

* forward declarations are recorded as undefined types now
* fixed minor issue with dependent template argument names
This commit is contained in:
malte_langkabel
2016-12-13 10:45:16 +01:00
parent 5391ea449b
commit 982264d7ba
10 changed files with 48 additions and 35 deletions
@@ -11,7 +11,10 @@ CxxNameResolver::~CxxNameResolver()
void CxxNameResolver::ignoreContextDecl(const clang::Decl* decl)
{
m_ignoredContextDecls.push_back(decl);
if (decl)
{
m_ignoredContextDecls.push_back(decl);
}
}
bool CxxNameResolver::ignoresContext(const clang::DeclContext* declContext)
@@ -159,6 +159,7 @@ std::shared_ptr<CxxTypeName> CxxTypeNameResolver::getName(const clang::Type* typ
{
std::vector<std::string> templateArguments;
CxxTemplateArgumentNameResolver resolver(getIgnoredContextDecls());
resolver.ignoreContextDecl(templateSpecializationType->getTemplateName().getAsTemplateDecl()->getTemplatedDecl());
for (size_t i = 0; i < templateSpecializationType->getNumArgs(); i++)
{
templateArguments.push_back(resolver.getTemplateArgumentName(templateSpecializationType->getArg(i)));