1 //===-- InMemorySymbolIndex.cpp--------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "InMemorySymbolIndex.h" 10 11 using clang::find_all_symbols::SymbolAndSignals; 12 13 namespace clang { 14 namespace include_fixer { 15 InMemorySymbolIndex(const std::vector<SymbolAndSignals> & Symbols)16InMemorySymbolIndex::InMemorySymbolIndex( 17 const std::vector<SymbolAndSignals> &Symbols) { 18 for (const auto &Symbol : Symbols) 19 LookupTable[std::string(Symbol.Symbol.getName())].push_back(Symbol); 20 } 21 22 std::vector<SymbolAndSignals> search(llvm::StringRef Identifier)23InMemorySymbolIndex::search(llvm::StringRef Identifier) { 24 auto I = LookupTable.find(std::string(Identifier)); 25 if (I != LookupTable.end()) 26 return I->second; 27 return {}; 28 } 29 30 } // namespace include_fixer 31 } // namespace clang 32