diff options
author | Edwin Vane <edwin.vane@intel.com> | 2013-06-18 15:31:01 +0000 |
---|---|---|
committer | Edwin Vane <edwin.vane@intel.com> | 2013-06-18 15:31:01 +0000 |
commit | 62c013db6ce8dabac58a313c5e4ca05e75e45881 (patch) | |
tree | bb79b5905ac9a479c6f8b9b7c38bdb3a859fcfc3 /clang-tools-extra/cpp11-migrate/UseAuto | |
parent | 302c0da6f138d1475b497a6e987787e94f15046f (diff) | |
download | bcm5719-llvm-62c013db6ce8dabac58a313c5e4ca05e75e45881.tar.gz bcm5719-llvm-62c013db6ce8dabac58a313c5e4ca05e75e45881.zip |
cpp11-migrate: Transform now responsible for applying replacements
To make it possible for replacements made to headers as part of transforming
one translation unit to not be visible to the transform of other translation
units, Transform now handles replacement application as part of its
end-of-source handling. Several things were simplified as a result:
- The duplicated code in every transform for applying replacements is now gone
and replaced with one location in Transform.
- RefactoringTool is no longer used since Transform houses the Replacements
structure.
- RewriterContainer is now a private implementation detail of Transform (also
renamed to RewriterManager since its behaviour is slightly different now with
respect to lifetime of objects).
- There's now no distinction between input and output file state.
Misc notes:
- Interface changes reflected in unit tests.
- Replacements for files other than the main file are assumed to be for headers
and stored as such.
llvm-svn: 184194
Diffstat (limited to 'clang-tools-extra/cpp11-migrate/UseAuto')
-rw-r--r-- | clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp | 20 | ||||
-rw-r--r-- | clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.h | 8 |
2 files changed, 10 insertions, 18 deletions
diff --git a/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp b/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp index 892ba72bfe7..0a8d0d2e3a8 100644 --- a/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp +++ b/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp @@ -20,18 +20,17 @@ using clang::ast_matchers::MatchFinder; using namespace clang; using namespace clang::tooling; -int UseAutoTransform::apply(const FileOverrides &InputStates, +int UseAutoTransform::apply(FileOverrides &InputStates, const clang::tooling::CompilationDatabase &Database, - const std::vector<std::string> &SourcePaths, - FileOverrides &ResultStates) { - RefactoringTool UseAutoTool(Database, SourcePaths); + const std::vector<std::string> &SourcePaths) { + ClangTool UseAutoTool(Database, SourcePaths); unsigned AcceptedChanges = 0; MatchFinder Finder; - IteratorReplacer ReplaceIterators(UseAutoTool.getReplacements(), - AcceptedChanges, Options().MaxRiskLevel); - NewReplacer ReplaceNew(UseAutoTool.getReplacements(), AcceptedChanges, + IteratorReplacer ReplaceIterators(getReplacements(), AcceptedChanges, + Options().MaxRiskLevel); + NewReplacer ReplaceNew(getReplacements(), AcceptedChanges, Options().MaxRiskLevel); Finder.addMatcher(makeIteratorDeclMatcher(), &ReplaceIterators); @@ -44,13 +43,6 @@ int UseAutoTransform::apply(const FileOverrides &InputStates, return Result; } - RewriterContainer Rewrite(UseAutoTool.getFiles(), InputStates); - - // FIXME: Do something if some replacements didn't get applied? - UseAutoTool.applyAllReplacements(Rewrite.getRewriter()); - - collectResults(Rewrite.getRewriter(), InputStates, ResultStates); - setAcceptedChanges(AcceptedChanges); return 0; diff --git a/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.h b/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.h index ae5328d2f72..bb94c3a6df3 100644 --- a/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.h +++ b/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.h @@ -29,13 +29,13 @@ /// p2 are not handled by this transform. class UseAutoTransform : public Transform { public: - UseAutoTransform(const TransformOptions &Options) : Transform("UseAuto", Options) {} + UseAutoTransform(const TransformOptions &Options) + : Transform("UseAuto", Options) {} /// \see Transform::run(). - virtual int apply(const FileOverrides &InputStates, + virtual int apply(FileOverrides &InputStates, const clang::tooling::CompilationDatabase &Database, - const std::vector<std::string> &SourcePaths, - FileOverrides &ResultStates) LLVM_OVERRIDE; + const std::vector<std::string> &SourcePaths) LLVM_OVERRIDE; }; #endif // LLVM_TOOLS_CLANG_TOOLS_EXTRA_CPP11_MIGRATE_USE_AUTO_H |