[PATCH] D31492: Add `addReplacement` interface in AtomicChange.
hokein updated this revision to Diff 93456. hokein added a comment. Get rid of Replacement, and implement "replace" interface with range. https://reviews.llvm.org/D31492 Files: include/clang/Tooling/Refactoring/AtomicChange.h lib/Tooling/Refactoring/AtomicChange.cpp Index: lib/Tooling/Refactoring/AtomicChange.cpp === --- lib/Tooling/Refactoring/AtomicChange.cpp +++ lib/Tooling/Refactoring/AtomicChange.cpp @@ -132,6 +132,12 @@ return E; } +llvm::Error AtomicChange::replace(const SourceManager , + const CharSourceRange , + llvm::StringRef ReplacementText) { + return Replacements.add(Replacement(SM, Range, ReplacementText)); +} + llvm::Error AtomicChange::insert(const SourceManager , SourceLocation Loc, llvm::StringRef Text, bool InsertAfter) { if (Text.empty()) Index: include/clang/Tooling/Refactoring/AtomicChange.h === --- include/clang/Tooling/Refactoring/AtomicChange.h +++ include/clang/Tooling/Refactoring/AtomicChange.h @@ -70,6 +70,12 @@ /// \brief Returns the error message or an empty string if it does not exist. const std::string () const { return Error; } + /// \brief Adds a replacement that replaces the given Range with + /// ReplacementText. + /// \returns An llvm::Error carrying ReplacementError on error. + llvm::Error replace(const SourceManager , const CharSourceRange , + llvm::StringRef ReplacementText); + /// \brief Adds a replacement that replaces range [Loc, Loc+Length) with /// \p Text. /// \returns An llvm::Error carrying ReplacementError on error. Index: lib/Tooling/Refactoring/AtomicChange.cpp === --- lib/Tooling/Refactoring/AtomicChange.cpp +++ lib/Tooling/Refactoring/AtomicChange.cpp @@ -132,6 +132,12 @@ return E; } +llvm::Error AtomicChange::replace(const SourceManager , + const CharSourceRange , + llvm::StringRef ReplacementText) { + return Replacements.add(Replacement(SM, Range, ReplacementText)); +} + llvm::Error AtomicChange::insert(const SourceManager , SourceLocation Loc, llvm::StringRef Text, bool InsertAfter) { if (Text.empty()) Index: include/clang/Tooling/Refactoring/AtomicChange.h === --- include/clang/Tooling/Refactoring/AtomicChange.h +++ include/clang/Tooling/Refactoring/AtomicChange.h @@ -70,6 +70,12 @@ /// \brief Returns the error message or an empty string if it does not exist. const std::string () const { return Error; } + /// \brief Adds a replacement that replaces the given Range with + /// ReplacementText. + /// \returns An llvm::Error carrying ReplacementError on error. + llvm::Error replace(const SourceManager , const CharSourceRange , + llvm::StringRef ReplacementText); + /// \brief Adds a replacement that replaces range [Loc, Loc+Length) with /// \p Text. /// \returns An llvm::Error carrying ReplacementError on error. ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D31492: Add `addReplacement` interface in AtomicChange.
ioeric added a comment. Please see comment from a previous patch (https://reviews.llvm.org/D27054?id=79099#inline-234270). Generally, `AtomicChange` is a higher level of abstraction than `Replacement`, and we don't want users to deal with `Replacement` and the related errors. https://reviews.llvm.org/D31492 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D31492: Add `addReplacement` interface in AtomicChange.
hokein created this revision. Herald added a subscriber: klimek. https://reviews.llvm.org/D31492 Files: include/clang/Tooling/Refactoring/AtomicChange.h lib/Tooling/Refactoring/AtomicChange.cpp Index: lib/Tooling/Refactoring/AtomicChange.cpp === --- lib/Tooling/Refactoring/AtomicChange.cpp +++ lib/Tooling/Refactoring/AtomicChange.cpp @@ -132,6 +132,10 @@ return E; } +llvm::Error AtomicChange::addReplacement(const Replacement& R) { + return Replaces.add(R); +} + llvm::Error AtomicChange::insert(const SourceManager , SourceLocation Loc, llvm::StringRef Text, bool InsertAfter) { if (Text.empty()) Index: include/clang/Tooling/Refactoring/AtomicChange.h === --- include/clang/Tooling/Refactoring/AtomicChange.h +++ include/clang/Tooling/Refactoring/AtomicChange.h @@ -70,6 +70,9 @@ /// \brief Returns the error message or an empty string if it does not exist. const std::string () const { return Error; } + /// \brief Adds a replacement to the atomic change. + llvm::Error addReplacement(const Replacement& R); + /// \brief Adds a replacement that replaces range [Loc, Loc+Length) with /// \p Text. /// \returns An llvm::Error carrying ReplacementError on error. Index: lib/Tooling/Refactoring/AtomicChange.cpp === --- lib/Tooling/Refactoring/AtomicChange.cpp +++ lib/Tooling/Refactoring/AtomicChange.cpp @@ -132,6 +132,10 @@ return E; } +llvm::Error AtomicChange::addReplacement(const Replacement& R) { + return Replaces.add(R); +} + llvm::Error AtomicChange::insert(const SourceManager , SourceLocation Loc, llvm::StringRef Text, bool InsertAfter) { if (Text.empty()) Index: include/clang/Tooling/Refactoring/AtomicChange.h === --- include/clang/Tooling/Refactoring/AtomicChange.h +++ include/clang/Tooling/Refactoring/AtomicChange.h @@ -70,6 +70,9 @@ /// \brief Returns the error message or an empty string if it does not exist. const std::string () const { return Error; } + /// \brief Adds a replacement to the atomic change. + llvm::Error addReplacement(const Replacement& R); + /// \brief Adds a replacement that replaces range [Loc, Loc+Length) with /// \p Text. /// \returns An llvm::Error carrying ReplacementError on error. ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits