logic: fixed infinite recursion while solving c++ template parameter names (issue #553)

This commit is contained in:
mlangkabel
2018-03-20 18:47:42 +01:00
parent b5f9e77154
commit 4c92d51b63
14 changed files with 154 additions and 105 deletions
@@ -0,0 +1,25 @@
#ifndef CXX_TEMPLATE_PARAMETER_STRING_RESOLVER_H
#define CXX_TEMPLATE_PARAMETER_STRING_RESOLVER_H
#include <memory>
#include "data/parser/cxx/name_resolver/CxxNameResolver.h"
class DataType;
class CxxTemplateParameterStringResolver: public CxxNameResolver
{
public:
CxxTemplateParameterStringResolver(std::shared_ptr<CanonicalFilePathCache> canonicalFilePathCache);
CxxTemplateParameterStringResolver(
std::shared_ptr<CanonicalFilePathCache> canonicalFilePathCache,
std::vector<const clang::Decl*> ignoredContextDecls
);
std::wstring getTemplateParameterString(const clang::NamedDecl* parameter);
std::wstring getTemplateParameterTypeString(const clang::NonTypeTemplateParmDecl* parameter);
std::wstring getTemplateParameterTypeString(const clang::TemplateTypeParmDecl* parameter);
std::wstring getTemplateParameterTypeString(const clang::TemplateTemplateParmDecl* parameter);
};
#endif // CXX_TEMPLATE_PARAMETER_STRING_RESOLVER_H