diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-04-13 07:15:11 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-04-13 07:15:11 +0000 |
commit | fd183ba0b16718ff05e161bc479678e447df4999 (patch) | |
tree | 0ae66a50524bb6b6e51f02c1eb4a1ee5015496b2 /lib/Rewrite/Rewriter.cpp | |
parent | 60cb5e9d39ec1ec8f476eb700c423bfe574fbac8 (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.cpp | 18 |
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; } |