Browse Source

Reused the walking of declarations when getting name-spaces in the parser. (#900)

pull/901/head
Kimon Topouzidis 9 years ago committed by Dimitar Dobrev
parent
commit
f1396727db
  1. 30
      src/CppParser/Parser.cpp

30
src/CppParser/Parser.cpp

@ -1789,41 +1789,17 @@ DeclarationContext* Parser::GetNamespace(const clang::Decl* D,
const LinkageSpecDecl* LD = cast<LinkageSpecDecl>(Ctx); const LinkageSpecDecl* LD = cast<LinkageSpecDecl>(Ctx);
continue; continue;
} }
case Decl::Record:
{
auto RD = cast<RecordDecl>(Ctx);
DC = WalkRecord(RD);
continue;
}
case Decl::CXXRecord: case Decl::CXXRecord:
{ {
auto RD = cast<CXXRecordDecl>(Ctx); auto RD = cast<CXXRecordDecl>(Ctx);
DC = WalkRecordCXX(RD); DC = WalkRecordCXX(RD);
continue; continue;
} }
case Decl::ClassTemplateSpecialization:
{
auto CTSpec = cast<ClassTemplateSpecializationDecl>(Ctx);
DC = WalkClassTemplateSpecialization(CTSpec);
continue;
}
case Decl::ClassTemplatePartialSpecialization:
{
auto CTPSpec = cast<ClassTemplatePartialSpecializationDecl>(Ctx);
DC = WalkClassTemplatePartialSpecialization(CTPSpec);
continue;
}
case Decl::Enum:
{
auto CTPSpec = cast<EnumDecl>(Ctx);
DC = WalkEnum(CTPSpec);
continue;
}
default: default:
{ {
StringRef Kind = Ctx->getDeclKindName(); auto D = cast<Decl>(Ctx);
printf("Unhandled declaration context kind: %s\n", Kind.str().c_str()); auto Decl = WalkDeclaration(D);
assert(0 && "Unhandled declaration context kind"); DC = cast<DeclarationContext>(Decl);
} } } }
} }

Loading…
Cancel
Save