summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/cpp11-migrate/UseAuto
diff options
context:
space:
mode:
authorEdwin Vane <edwin.vane@intel.com>2013-06-18 15:31:01 +0000
committerEdwin Vane <edwin.vane@intel.com>2013-06-18 15:31:01 +0000
commit62c013db6ce8dabac58a313c5e4ca05e75e45881 (patch)
treebb79b5905ac9a479c6f8b9b7c38bdb3a859fcfc3 /clang-tools-extra/cpp11-migrate/UseAuto
parent302c0da6f138d1475b497a6e987787e94f15046f (diff)
downloadbcm5719-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.cpp20
-rw-r--r--clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.h8
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
OpenPOWER on IntegriCloud