summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/AST.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/AST.cpp')
-rw-r--r--clang-tools-extra/clangd/AST.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/AST.cpp b/clang-tools-extra/clangd/AST.cpp
index 661c6aaf403..ffaf63ae760 100644
--- a/clang-tools-extra/clangd/AST.cpp
+++ b/clang-tools-extra/clangd/AST.cpp
@@ -54,6 +54,14 @@ std::string printQualifiedName(const NamedDecl &ND) {
return QName;
}
+std::string printNamespaceScope(const DeclContext &DC) {
+ for (const auto *Ctx = &DC; Ctx != nullptr; Ctx = Ctx->getParent())
+ if (const auto *NS = dyn_cast<NamespaceDecl>(Ctx))
+ if (!NS->isAnonymousNamespace() && !NS->isInlineNamespace())
+ return printQualifiedName(*NS) + "::";
+ return "";
+}
+
llvm::Optional<SymbolID> getSymbolID(const Decl *D) {
llvm::SmallString<128> USR;
if (index::generateUSRForDecl(D, USR))
OpenPOWER on IntegriCloud