diff options
Diffstat (limited to 'clang-tools-extra/cpp11-migrate/UseAuto')
4 files changed, 17 insertions, 19 deletions
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<std::string> &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); diff --git a/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.h b/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.h index 71b8dd7dc95..26b5e4496f6 100644 --- a/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.h +++ b/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.h @@ -34,7 +34,7 @@ public: : Transform("UseAuto", Options) {} /// \see Transform::run(). - virtual int apply(FileOverrides &InputStates, + virtual int apply(const FileOverrides &InputStates, const clang::tooling::CompilationDatabase &Database, const std::vector<std::string> &SourcePaths) LLVM_OVERRIDE; }; diff --git a/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp b/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp index 643de63069e..2a8d5c5935d 100644 --- a/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp +++ b/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp @@ -73,7 +73,7 @@ void IteratorReplacer::run(const MatchFinder::MatchResult &Result) { // iterators but something to keep in mind in the future. CharSourceRange Range(TL.getSourceRange(), true); - Replace.insert(tooling::Replacement(SM, Range, "auto")); + Owner.addReplacementForCurrentTU(tooling::Replacement(SM, Range, "auto")); ++AcceptedChanges; } @@ -131,8 +131,9 @@ void NewReplacer::run(const MatchFinder::MatchResult &Result) { for (std::vector<SourceLocation>::iterator I = StarLocations.begin(), E = StarLocations.end(); I != E; ++I) { - Replace.insert(tooling::Replacement(SM, *I, 1, "")); + Owner.addReplacementForCurrentTU(tooling::Replacement(SM, *I, 1, "")); } + // FIXME: There is, however, one case we can address: when the VarDecl // pointee is the same as the initializer, just more CV-qualified. However, // TypeLoc information is not reliable where CV qualifiers are concerned so @@ -141,6 +142,6 @@ void NewReplacer::run(const MatchFinder::MatchResult &Result) { FirstDecl->getTypeSourceInfo()->getTypeLoc().getSourceRange(), true); // Space after 'auto' to handle cases where the '*' in the pointer type // is next to the identifier. This avoids changing 'int *p' into 'autop'. - Replace.insert(tooling::Replacement(SM, Range, "auto ")); + Owner.addReplacementForCurrentTU(tooling::Replacement(SM, Range, "auto ")); ++AcceptedChanges; } diff --git a/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.h b/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.h index 403621803c3..0ddb0e0c5af 100644 --- a/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.h +++ b/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.h @@ -25,36 +25,32 @@ class IteratorReplacer : public clang::ast_matchers::MatchFinder::MatchCallback { public: - IteratorReplacer(clang::tooling::Replacements &Replace, - unsigned &AcceptedChanges, RiskLevel, const Transform &Owner) - : Replace(Replace), AcceptedChanges(AcceptedChanges), Owner(Owner) {} + IteratorReplacer(unsigned &AcceptedChanges, RiskLevel, Transform &Owner) + : AcceptedChanges(AcceptedChanges), Owner(Owner) {} /// \brief Entry point to the callback called when matches are made. virtual void run(const clang::ast_matchers::MatchFinder::MatchResult &Result) LLVM_OVERRIDE; private: - clang::tooling::Replacements &Replace; unsigned &AcceptedChanges; - const Transform &Owner; + Transform &Owner; }; /// \brief The callback used when replacing type specifiers of variable /// declarations initialized by a C++ new expression. class NewReplacer : public clang::ast_matchers::MatchFinder::MatchCallback { public: - NewReplacer(clang::tooling::Replacements &Replace, unsigned &AcceptedChanges, - RiskLevel, const Transform &Owner) - : Replace(Replace), AcceptedChanges(AcceptedChanges), Owner(Owner) {} + NewReplacer(unsigned &AcceptedChanges, RiskLevel, Transform &Owner) + : AcceptedChanges(AcceptedChanges), Owner(Owner) {} /// \brief Entry point to the callback called when matches are made. virtual void run(const clang::ast_matchers::MatchFinder::MatchResult &Result) LLVM_OVERRIDE; private: - clang::tooling::Replacements &Replace; unsigned &AcceptedChanges; - const Transform &Owner; + Transform &Owner; }; #endif // CPP11_MIGRATE_USE_AUTO_ACTIONS_H |