r193592 - Revert "Use Rewriter::overwriteChangedFiles() directly"
Alp Toker
alp at nuanti.com
Tue Oct 29 00:56:03 PDT 2013
Author: alp
Date: Tue Oct 29 02:56:03 2013
New Revision: 193592
URL: http://llvm.org/viewvc/llvm-project?rev=193592&view=rev
Log:
Revert "Use Rewriter::overwriteChangedFiles() directly"
This wasn't ready for prime time yet, seems to break tools-extra.
This reverts commit r193590.
Modified:
cfe/trunk/lib/Tooling/Refactoring.cpp
Modified: cfe/trunk/lib/Tooling/Refactoring.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/Refactoring.cpp?rev=193592&r1=193591&r2=193592&view=diff
==============================================================================
--- cfe/trunk/lib/Tooling/Refactoring.cpp (original)
+++ cfe/trunk/lib/Tooling/Refactoring.cpp Tue Oct 29 02:56:03 2013
@@ -301,7 +301,23 @@ bool RefactoringTool::applyAllReplacemen
}
int RefactoringTool::saveRewrittenFiles(Rewriter &Rewrite) {
- return Rewrite.overwriteChangedFiles() ? 0 : 1;
+ for (Rewriter::buffer_iterator I = Rewrite.buffer_begin(),
+ E = Rewrite.buffer_end();
+ I != E; ++I) {
+ // FIXME: This code is copied from the FixItRewriter.cpp - I think it should
+ // go into directly into Rewriter (there we also have the Diagnostics to
+ // handle the error cases better).
+ const FileEntry *Entry =
+ Rewrite.getSourceMgr().getFileEntryForID(I->first);
+ std::string ErrorInfo;
+ llvm::raw_fd_ostream FileStream(Entry->getName(), ErrorInfo,
+ llvm::sys::fs::F_Binary);
+ if (!ErrorInfo.empty())
+ return 1;
+ I->second.write(FileStream);
+ FileStream.flush();
+ }
+ return 0;
}
} // end namespace tooling
More information about the cfe-commits
mailing list