Line data Source code
1 : //===-- SymbolIndex.h - Interface for symbol-header matching ----*- C++ -*-===//
2 : //
3 : // The LLVM Compiler Infrastructure
4 : //
5 : // This file is distributed under the University of Illinois Open Source
6 : // License. See LICENSE.TXT for details.
7 : //
8 : //===----------------------------------------------------------------------===//
9 :
10 : #ifndef LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_SYMBOLINDEX_H
11 : #define LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_SYMBOLINDEX_H
12 :
13 : #include "find-all-symbols/SymbolInfo.h"
14 : #include "llvm/ADT/StringRef.h"
15 : #include <vector>
16 :
17 : namespace clang {
18 : namespace include_fixer {
19 :
20 : /// This class provides an interface for finding all `SymbolInfo`s corresponding
21 : /// to a symbol name from a symbol database.
22 : class SymbolIndex {
23 : public:
24 0 : virtual ~SymbolIndex() = default;
25 :
26 : /// Search for all `SymbolInfo`s corresponding to an identifier.
27 : /// \param Identifier The unqualified identifier being searched for.
28 : /// \returns A list of `SymbolInfo` candidates.
29 : // FIXME: Expose the type name so we can also insert using declarations (or
30 : // fix the usage)
31 : virtual std::vector<find_all_symbols::SymbolAndSignals>
32 : search(llvm::StringRef Identifier) = 0;
33 : };
34 :
35 : } // namespace include_fixer
36 : } // namespace clang
37 :
38 : #endif // LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_SYMBOLINDEX_H
|