summaryrefslogtreecommitdiffstats
path: root/clang/lib/Rewrite/Rewriter.cpp
diff options
context:
space:
mode:
authorJoel E. Denny <jdenny.ornl@gmail.com>2019-07-06 02:55:06 +0000
committerJoel E. Denny <jdenny.ornl@gmail.com>2019-07-06 02:55:06 +0000
commitadeb5ac2d6431f348b510e1eca5b91ac6a9aa86f (patch)
treeae93d6d33811e670002e5234076e4e10e5498bbc /clang/lib/Rewrite/Rewriter.cpp
parenta2ca358291a3a621bfae66eeb01f51eeb69d2dd4 (diff)
downloadbcm5719-llvm-adeb5ac2d6431f348b510e1eca5b91ac6a9aa86f.tar.gz
bcm5719-llvm-adeb5ac2d6431f348b510e1eca5b91ac6a9aa86f.zip
[Rewrite] Extend to further accept CharSourceRange
Some Rewrite functions are already overloaded to accept CharSourceRange, and this extends others in the same manner. I'm calling these in code that's not ready to upstream, but I figure they might be useful to others in the meantime. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D61467 llvm-svn: 365258
Diffstat (limited to 'clang/lib/Rewrite/Rewriter.cpp')
-rw-r--r--clang/lib/Rewrite/Rewriter.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/clang/lib/Rewrite/Rewriter.cpp b/clang/lib/Rewrite/Rewriter.cpp
index 281cf6f1be5..881399e98e3 100644
--- a/clang/lib/Rewrite/Rewriter.cpp
+++ b/clang/lib/Rewrite/Rewriter.cpp
@@ -170,7 +170,7 @@ int Rewriter::getRangeSize(SourceRange Range, RewriteOptions opts) const {
/// in different buffers, this returns an empty string.
///
/// Note that this method is not particularly efficient.
-std::string Rewriter::getRewrittenText(SourceRange Range) const {
+std::string Rewriter::getRewrittenText(CharSourceRange Range) const {
if (!isRewritable(Range.getBegin()) ||
!isRewritable(Range.getEnd()))
return {};
@@ -193,7 +193,9 @@ std::string Rewriter::getRewrittenText(SourceRange Range) const {
// Adjust the end offset to the end of the last token, instead of being the
// start of the last token.
- EndOff += Lexer::MeasureTokenLength(Range.getEnd(), *SourceMgr, *LangOpts);
+ if (Range.isTokenRange())
+ EndOff +=
+ Lexer::MeasureTokenLength(Range.getEnd(), *SourceMgr, *LangOpts);
return std::string(Ptr, Ptr+EndOff-StartOff);
}
@@ -203,7 +205,8 @@ std::string Rewriter::getRewrittenText(SourceRange Range) const {
// Adjust the end offset to the end of the last token, instead of being the
// start of the last token.
- EndOff += Lexer::MeasureTokenLength(Range.getEnd(), *SourceMgr, *LangOpts);
+ if (Range.isTokenRange())
+ EndOff += Lexer::MeasureTokenLength(Range.getEnd(), *SourceMgr, *LangOpts);
// Advance the iterators to the right spot, yay for linear time algorithms.
RewriteBuffer::iterator Start = RB.begin();
OpenPOWER on IntegriCloud