[PATCH] D31492: Add `addReplacement` interface in AtomicChange.

2017-03-30 Thread Haojian Wu via Phabricator via cfe-commits
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.

2017-03-30 Thread Eric Liu via Phabricator via cfe-commits
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.

2017-03-30 Thread Haojian Wu via Phabricator via cfe-commits
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