aboutsummaryrefslogtreecommitdiff
path: root/lib/Rewrite/Rewriter.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-04-13 07:15:11 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-04-13 07:15:11 +0000
commitfd183ba0b16718ff05e161bc479678e447df4999 (patch)
tree0ae66a50524bb6b6e51f02c1eb4a1ee5015496b2 /lib/Rewrite/Rewriter.cpp
parent60cb5e9d39ec1ec8f476eb700c423bfe574fbac8 (diff)
Collect the options applicable to the Rewriter methods into a RewriterOptions struct.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129430 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Rewrite/Rewriter.cpp')
-rw-r--r--lib/Rewrite/Rewriter.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/Rewrite/Rewriter.cpp b/lib/Rewrite/Rewriter.cpp
index 3d396d43e4..5ccf0f332c 100644
--- a/lib/Rewrite/Rewriter.cpp
+++ b/lib/Rewrite/Rewriter.cpp
@@ -117,7 +117,7 @@ void RewriteBuffer::ReplaceText(unsigned OrigOffset, unsigned OrigLength,
/// getRangeSize - Return the size in bytes of the specified range if they
/// are in the same file. If not, this returns -1.
int Rewriter::getRangeSize(const CharSourceRange &Range,
- bool AfterInserts) const {
+ RewriteOptions opts) const {
if (!isRewritable(Range.getBegin()) ||
!isRewritable(Range.getEnd())) return -1;
@@ -136,8 +136,8 @@ int Rewriter::getRangeSize(const CharSourceRange &Range,
RewriteBuffers.find(StartFileID);
if (I != RewriteBuffers.end()) {
const RewriteBuffer &RB = I->second;
- EndOff = RB.getMappedOffset(EndOff, true);
- StartOff = RB.getMappedOffset(StartOff, AfterInserts);
+ EndOff = RB.getMappedOffset(EndOff, opts.IncludeInsertsAtEndOfRange);
+ StartOff = RB.getMappedOffset(StartOff, !opts.IncludeInsertsAtBeginOfRange);
}
@@ -149,8 +149,8 @@ int Rewriter::getRangeSize(const CharSourceRange &Range,
return EndOff-StartOff;
}
-int Rewriter::getRangeSize(SourceRange Range, bool AfterInserts) const {
- return getRangeSize(CharSourceRange::getTokenRange(Range), AfterInserts);
+int Rewriter::getRangeSize(SourceRange Range, RewriteOptions opts) const {
+ return getRangeSize(CharSourceRange::getTokenRange(Range), opts);
}
@@ -243,18 +243,20 @@ bool Rewriter::InsertTextAfterToken(SourceLocation Loc, llvm::StringRef Str) {
if (!isRewritable(Loc)) return true;
FileID FID;
unsigned StartOffs = getLocationOffsetAndFileID(Loc, FID);
- StartOffs += getRangeSize(SourceRange(Loc, Loc), /*AfterInserts*/true);
+ RewriteOptions rangeOpts;
+ rangeOpts.IncludeInsertsAtBeginOfRange = false;
+ StartOffs += getRangeSize(SourceRange(Loc, Loc), rangeOpts);
getEditBuffer(FID).InsertText(StartOffs, Str, /*InsertAfter*/true);
return false;
}
/// RemoveText - Remove the specified text region.
bool Rewriter::RemoveText(SourceLocation Start, unsigned Length,
- bool removeLineIfEmpty) {
+ RewriteOptions opts) {
if (!isRewritable(Start)) return true;
FileID FID;
unsigned StartOffs = getLocationOffsetAndFileID(Start, FID);
- getEditBuffer(FID).RemoveText(StartOffs, Length, removeLineIfEmpty);
+ getEditBuffer(FID).RemoveText(StartOffs, Length, opts.RemoveLineIfEmpty);
return false;
}