omtcyfz created this revision.
omtcyfz added a reviewer: alexfh.
omtcyfz added a subscriber: cfe-commits.

`clang-rename` might sometimes have multiple replacements at one 
SourceLocation, both trying to perform the same renaming. While this issue 
should be addressed properly at some point, for now it's fine to prevent 
`clang-rename` from printing out the error message to prevent confusion as it 
works just fine even if the error happens.



https://reviews.llvm.org/D24914

Files:
  clang-rename/RenamingAction.cpp

Index: clang-rename/RenamingAction.cpp
===================================================================
--- clang-rename/RenamingAction.cpp
+++ clang-rename/RenamingAction.cpp
@@ -68,12 +68,14 @@
                << ":" << FullLoc.getSpellingLineNumber() << ":"
                << FullLoc.getSpellingColumnNumber() << "\n";
       }
-      // FIXME: better error handling.
       tooling::Replacement Replace(SourceMgr, Loc, PrevNameLen, NewName);
       llvm::Error Err = FileToReplaces[Replace.getFilePath()].add(Replace);
+      // FIXME: As for clang-rename, replacement fails IFF either the AST node
+      // has been matched multiple times (which shouldn't happen in reality,
+      // need to fix that) or when it's a specific header. For now, just ingore
+      // there error that happened as it doesn't mean a failure.
       if (Err)
-        llvm::errs() << "Renaming failed in " << Replace.getFilePath() << "! "
-                     << llvm::toString(std::move(Err)) << "\n";
+        llvm::consumeError(std::move(Err));
     }
   }
 


Index: clang-rename/RenamingAction.cpp
===================================================================
--- clang-rename/RenamingAction.cpp
+++ clang-rename/RenamingAction.cpp
@@ -68,12 +68,14 @@
                << ":" << FullLoc.getSpellingLineNumber() << ":"
                << FullLoc.getSpellingColumnNumber() << "\n";
       }
-      // FIXME: better error handling.
       tooling::Replacement Replace(SourceMgr, Loc, PrevNameLen, NewName);
       llvm::Error Err = FileToReplaces[Replace.getFilePath()].add(Replace);
+      // FIXME: As for clang-rename, replacement fails IFF either the AST node
+      // has been matched multiple times (which shouldn't happen in reality,
+      // need to fix that) or when it's a specific header. For now, just ingore
+      // there error that happened as it doesn't mean a failure.
       if (Err)
-        llvm::errs() << "Renaming failed in " << Replace.getFilePath() << "! "
-                     << llvm::toString(std::move(Err)) << "\n";
+        llvm::consumeError(std::move(Err));
     }
   }
 
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to