Browse Source

Handled the completeness of template specialisations in the parser.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/658/head
Dimitar Dobrev 9 years ago
parent
commit
8a4261dd42
  1. 10
      src/CppParser/Parser.cpp

10
src/CppParser/Parser.cpp

@ -983,6 +983,11 @@ ClassTemplate* Parser::WalkClassTemplate(clang::ClassTemplateDecl* TD) @@ -983,6 +983,11 @@ ClassTemplate* Parser::WalkClassTemplate(clang::ClassTemplateDecl* TD)
return CT;
CT = new ClassTemplate();
if (TD != TD->getCanonicalDecl())
{
CT->IsIncomplete = true;
CT->CompleteDeclaration = WalkClassTemplate(TD->getCanonicalDecl());
}
HandleDeclaration(TD, CT);
CT->Name = GetDeclName(TD);
@ -1163,6 +1168,11 @@ FunctionTemplate* Parser::WalkFunctionTemplate(clang::FunctionTemplateDecl* TD) @@ -1163,6 +1168,11 @@ FunctionTemplate* Parser::WalkFunctionTemplate(clang::FunctionTemplateDecl* TD)
/*AddToNamespace=*/false);
FT = new FunctionTemplate();
if (TD != TD->getCanonicalDecl())
{
FT->IsIncomplete = true;
FT->CompleteDeclaration = WalkFunctionTemplate(TD->getCanonicalDecl());
}
HandleDeclaration(TD, FT);
FT->Name = GetDeclName(TD);

Loading…
Cancel
Save