From: Haojian Wu Date: Wed, 25 Apr 2018 15:27:09 +0000 (+0000) Subject: [clangd] Add "str()" method to SymbolID. X-Git-Tag: llvmorg-7.0.0-rc1~7408 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cbf20ef6abd50cd31744e97d450ebf00976d110b;p=platform%2Fupstream%2Fllvm.git [clangd] Add "str()" method to SymbolID. Summary: This is a convenient function when we try to get std::string of SymbolID. Reviewers: ioeric Subscribers: klimek, ilya-biryukov, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D46065 llvm-svn: 330835 --- diff --git a/clang-tools-extra/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp b/clang-tools-extra/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp index 7d62cf1..2607e2b 100644 --- a/clang-tools-extra/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp +++ b/clang-tools-extra/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp @@ -78,10 +78,7 @@ public: auto Symbols = Collector->takeSymbols(); for (const auto &Sym : Symbols) { - std::string IDStr; - llvm::raw_string_ostream OS(IDStr); - OS << Sym.ID; - Ctx->reportResult(OS.str(), SymbolToYAML(Sym)); + Ctx->reportResult(Sym.ID.str(), SymbolToYAML(Sym)); } } diff --git a/clang-tools-extra/clangd/index/Index.cpp b/clang-tools-extra/clangd/index/Index.cpp index c4e969c..b12507a 100644 --- a/clang-tools-extra/clangd/index/Index.cpp +++ b/clang-tools-extra/clangd/index/Index.cpp @@ -31,6 +31,13 @@ raw_ostream &operator<<(raw_ostream &OS, const SymbolID &ID) { return OS; } +std::string SymbolID::str() const { + std::string ID; + llvm::raw_string_ostream OS(ID); + OS << *this; + return OS.str(); +} + void operator>>(StringRef Str, SymbolID &ID) { std::string HexString = fromHex(Str); assert(HexString.size() == ID.HashValue.size()); diff --git a/clang-tools-extra/clangd/index/Index.h b/clang-tools-extra/clangd/index/Index.h index cb32c0f..610b0e6 100644 --- a/clang-tools-extra/clangd/index/Index.h +++ b/clang-tools-extra/clangd/index/Index.h @@ -69,6 +69,9 @@ public: return HashValue < Sym.HashValue; } + // Returns a 40-bytes hex encoded string. + std::string str() const; + private: static constexpr unsigned HashByteLength = 20;