Hi klimek, Now when calling applyAllReplacements() it's possible to pass 'non-lvalue' replacements.
I haven't found a reason why the 'const' was missing, I assume it was an oversight. http://llvm-reviews.chandlerc.com/D1169 Files: include/clang/Tooling/Refactoring.h lib/Tooling/Refactoring.cpp Index: include/clang/Tooling/Refactoring.h =================================================================== --- include/clang/Tooling/Refactoring.h +++ include/clang/Tooling/Refactoring.h @@ -124,13 +124,13 @@ /// other applications. /// /// \returns true if all replacements apply. false otherwise. -bool applyAllReplacements(Replacements &Replaces, Rewriter &Rewrite); +bool applyAllReplacements(const Replacements &Replaces, Rewriter &Rewrite); /// \brief Applies all replacements in \p Replaces to \p Code. /// /// This completely ignores the path stored in each replacement. If one or more /// replacements cannot be applied, this returns an empty \c string. -std::string applyAllReplacements(StringRef Code, Replacements &Replaces); +std::string applyAllReplacements(StringRef Code, const Replacements &Replaces); /// \brief Calculates how a code \p Position is shifted when \p Replaces are /// applied. Index: lib/Tooling/Refactoring.cpp =================================================================== --- lib/Tooling/Refactoring.cpp +++ lib/Tooling/Refactoring.cpp @@ -123,7 +123,7 @@ getRangeSize(Sources, Range), ReplacementText); } -bool applyAllReplacements(Replacements &Replaces, Rewriter &Rewrite) { +bool applyAllReplacements(const Replacements &Replaces, Rewriter &Rewrite) { bool Result = true; for (Replacements::const_iterator I = Replaces.begin(), E = Replaces.end(); @@ -137,7 +137,7 @@ return Result; } -std::string applyAllReplacements(StringRef Code, Replacements &Replaces) { +std::string applyAllReplacements(StringRef Code, const Replacements &Replaces) { FileManager Files((FileSystemOptions())); DiagnosticsEngine Diagnostics( IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), @@ -152,8 +152,8 @@ SourceMgr.overrideFileContents(Entry, Buf); FileID ID = SourceMgr.createFileID(Entry, SourceLocation(), clang::SrcMgr::C_User); - for (Replacements::iterator I = Replaces.begin(), E = Replaces.end(); I != E; - ++I) { + for (Replacements::const_iterator I = Replaces.begin(), E = Replaces.end(); + I != E; ++I) { Replacement Replace("<stdin>", I->getOffset(), I->getLength(), I->getReplacementText()); if (!Replace.apply(Rewrite))
Index: include/clang/Tooling/Refactoring.h =================================================================== --- include/clang/Tooling/Refactoring.h +++ include/clang/Tooling/Refactoring.h @@ -124,13 +124,13 @@ /// other applications. /// /// \returns true if all replacements apply. false otherwise. -bool applyAllReplacements(Replacements &Replaces, Rewriter &Rewrite); +bool applyAllReplacements(const Replacements &Replaces, Rewriter &Rewrite); /// \brief Applies all replacements in \p Replaces to \p Code. /// /// This completely ignores the path stored in each replacement. If one or more /// replacements cannot be applied, this returns an empty \c string. -std::string applyAllReplacements(StringRef Code, Replacements &Replaces); +std::string applyAllReplacements(StringRef Code, const Replacements &Replaces); /// \brief Calculates how a code \p Position is shifted when \p Replaces are /// applied. Index: lib/Tooling/Refactoring.cpp =================================================================== --- lib/Tooling/Refactoring.cpp +++ lib/Tooling/Refactoring.cpp @@ -123,7 +123,7 @@ getRangeSize(Sources, Range), ReplacementText); } -bool applyAllReplacements(Replacements &Replaces, Rewriter &Rewrite) { +bool applyAllReplacements(const Replacements &Replaces, Rewriter &Rewrite) { bool Result = true; for (Replacements::const_iterator I = Replaces.begin(), E = Replaces.end(); @@ -137,7 +137,7 @@ return Result; } -std::string applyAllReplacements(StringRef Code, Replacements &Replaces) { +std::string applyAllReplacements(StringRef Code, const Replacements &Replaces) { FileManager Files((FileSystemOptions())); DiagnosticsEngine Diagnostics( IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), @@ -152,8 +152,8 @@ SourceMgr.overrideFileContents(Entry, Buf); FileID ID = SourceMgr.createFileID(Entry, SourceLocation(), clang::SrcMgr::C_User); - for (Replacements::iterator I = Replaces.begin(), E = Replaces.end(); I != E; - ++I) { + for (Replacements::const_iterator I = Replaces.begin(), E = Replaces.end(); + I != E; ++I) { Replacement Replace("<stdin>", I->getOffset(), I->getLength(), I->getReplacementText()); if (!Replace.apply(Rewrite))
_______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits