From 0acd502afe118a82f480d184271fe60e5551746f Mon Sep 17 00:00:00 2001 From: Edwin Vane Date: Fri, 30 Aug 2013 19:28:59 +0000 Subject: cpp11-migrate: Refactor for driver model of operation Massive simplification of how replacements and file overrides are handled by the migrator: * Sources and headers are all treated the same. * All replacements for a given translation unit are stored in the same TranslationUnitReplacements structure. * Change tracking is updated only from main file; no need for propagating "is tracking" flag around. * Transform base class no longer responsible for applying replacements. They are simply stored and main() looks after deduplication and application. * Renamed -yaml-only to -serialize-replacements. Same restrictions apply: Can only request one transform. New restriction: formatting cannot also be turned on since it's basically a transform. * If -serialize-replacements is requested, changes to files will not be applied on disk. * Changed behaviour of function generating names for serialized replacements: Only the main source file goes into the name of the file since a file may contain changes for multiple different files. * Updated HeaderReplacements LIT test for new serialization behaviour. * Replaced old test that ensures replacements are not serialized if -serialize-replacements is not provided. New version ensures changes are made directly to all files in the translation unit. * Updated unit tests. * Due to major simplification of structures in FileOverrides.h, the FileOverridesTest is quite a bit simpler now. Differential Revision: http://llvm-reviews.chandlerc.com/D1545 llvm-svn: 189689 --- clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp') diff --git a/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp b/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp index ccf49d88c92..72f5ae077f2 100644 --- a/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp +++ b/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp @@ -20,7 +20,7 @@ using clang::ast_matchers::MatchFinder; using namespace clang; using namespace clang::tooling; -int UseAutoTransform::apply(FileOverrides &InputStates, +int UseAutoTransform::apply(const FileOverrides &InputStates, const clang::tooling::CompilationDatabase &Database, const std::vector &SourcePaths) { ClangTool UseAutoTool(Database, SourcePaths); @@ -28,10 +28,11 @@ int UseAutoTransform::apply(FileOverrides &InputStates, unsigned AcceptedChanges = 0; MatchFinder Finder; - IteratorReplacer ReplaceIterators(getReplacements(), AcceptedChanges, - Options().MaxRiskLevel, /*Owner=*/ *this); - NewReplacer ReplaceNew(getReplacements(), AcceptedChanges, - Options().MaxRiskLevel, /*Owner=*/ *this); + ReplacementsVec Replaces; + IteratorReplacer ReplaceIterators(AcceptedChanges, Options().MaxRiskLevel, + /*Owner=*/ *this); + NewReplacer ReplaceNew(AcceptedChanges, Options().MaxRiskLevel, + /*Owner=*/ *this); Finder.addMatcher(makeIteratorDeclMatcher(), &ReplaceIterators); Finder.addMatcher(makeDeclWithNewMatcher(), &ReplaceNew); -- cgit v1.2.3