summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/include-fixer/YamlXrefsDB.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/include-fixer/YamlXrefsDB.h')
-rw-r--r--clang-tools-extra/include-fixer/YamlXrefsDB.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/clang-tools-extra/include-fixer/YamlXrefsDB.h b/clang-tools-extra/include-fixer/YamlXrefsDB.h
index 1efed6bce8a..9901431e411 100644
--- a/clang-tools-extra/include-fixer/YamlXrefsDB.h
+++ b/clang-tools-extra/include-fixer/YamlXrefsDB.h
@@ -12,6 +12,7 @@
#include "XrefsDB.h"
#include "find-all-symbols/SymbolInfo.h"
+#include "llvm/Support/ErrorOr.h"
#include <map>
#include <vector>
@@ -21,12 +22,20 @@ namespace include_fixer {
/// Yaml format database.
class YamlXrefsDB : public XrefsDB {
public:
- YamlXrefsDB(llvm::StringRef FilePath);
+ /// Create a new Yaml db from a file.
+ static llvm::ErrorOr<std::unique_ptr<YamlXrefsDB>>
+ createFromFile(llvm::StringRef FilePath);
+ /// Look for a file called \c Name in \c Directory and all parent directories.
+ static llvm::ErrorOr<std::unique_ptr<YamlXrefsDB>>
+ createFromDirectory(llvm::StringRef Directory, llvm::StringRef Name);
std::vector<clang::find_all_symbols::SymbolInfo>
search(llvm::StringRef Identifier) override;
private:
+ explicit YamlXrefsDB(std::vector<clang::find_all_symbols::SymbolInfo> Symbols)
+ : Symbols(std::move(Symbols)) {}
+
std::vector<clang::find_all_symbols::SymbolInfo> Symbols;
};
OpenPOWER on IntegriCloud