diff options
author | Eric Liu <ioeric@google.com> | 2016-07-11 13:53:12 +0000 |
---|---|---|
committer | Eric Liu <ioeric@google.com> | 2016-07-11 13:53:12 +0000 |
commit | 4f8d99433da80161f85988052f96bc7dc621c4eb (patch) | |
tree | e926d386edbf05c0d8346483a53ac49678e2f284 /clang/lib/Tooling/Core | |
parent | 4d8500396454334975ab8bb6766d6521c5140b13 (diff) | |
download | bcm5719-llvm-4f8d99433da80161f85988052f96bc7dc621c4eb.tar.gz bcm5719-llvm-4f8d99433da80161f85988052f96bc7dc621c4eb.zip |
Make tooling::applyAllReplacements return llvm::Expected<string> instead of empty string to indicate potential error.
Summary:
return llvm::Expected<> to carry error status and error information.
This is the first step towards introducing "Error" into tooling::Replacements.
Reviewers: djasper, klimek
Subscribers: ioeric, klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D21601
llvm-svn: 275062
Diffstat (limited to 'clang/lib/Tooling/Core')
-rw-r--r-- | clang/lib/Tooling/Core/Replacement.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/Tooling/Core/Replacement.cpp b/clang/lib/Tooling/Core/Replacement.cpp index d52d0b08985..4f130709ac1 100644 --- a/clang/lib/Tooling/Core/Replacement.cpp +++ b/clang/lib/Tooling/Core/Replacement.cpp @@ -249,8 +249,10 @@ bool applyAllReplacements(const std::vector<Replacement> &Replaces, return Result; } -std::string applyAllReplacements(StringRef Code, const Replacements &Replaces) { - if (Replaces.empty()) return Code; +llvm::Expected<std::string> applyAllReplacements(StringRef Code, + const Replacements &Replaces) { + if (Replaces.empty()) + return Code.str(); IntrusiveRefCntPtr<vfs::InMemoryFileSystem> InMemoryFileSystem( new vfs::InMemoryFileSystem); @@ -269,7 +271,9 @@ std::string applyAllReplacements(StringRef Code, const Replacements &Replaces) { Replacement Replace("<stdin>", I->getOffset(), I->getLength(), I->getReplacementText()); if (!Replace.apply(Rewrite)) - return ""; + return llvm::make_error<llvm::StringError>( + "Failed to apply replacement: " + Replace.toString(), + llvm::inconvertibleErrorCode()); } std::string Result; llvm::raw_string_ostream OS(Result); |