Lines Matching full:range
31 StringRef clang::tooling::getText(CharSourceRange Range, in getText() argument
33 return Lexer::getSourceText(Range, Context.getSourceManager(), in getText()
37 CharSourceRange clang::tooling::maybeExtendRange(CharSourceRange Range, in maybeExtendRange() argument
40 CharSourceRange R = Lexer::getAsCharRange(Range, Context.getSourceManager(), in maybeExtendRange()
43 return Range; in maybeExtendRange()
49 return Range; in maybeExtendRange()
50 return CharSourceRange::getTokenRange(Range.getBegin(), Tok.getLocation()); in maybeExtendRange()
53 llvm::Error clang::tooling::validateRange(const CharSourceRange &Range, in validateRange() argument
56 if (Range.isInvalid()) in validateRange()
58 "Invalid range"); in validateRange()
60 if (Range.getBegin().isMacroID() || Range.getEnd().isMacroID()) in validateRange()
62 errc::invalid_argument, "Range starts or ends in a macro expansion"); in validateRange()
65 if (SM.isInSystemHeader(Range.getBegin()) || in validateRange()
66 SM.isInSystemHeader(Range.getEnd())) in validateRange()
68 "Range is in system header"); in validateRange()
71 std::pair<FileID, unsigned> BeginInfo = SM.getDecomposedLoc(Range.getBegin()); in validateRange()
72 std::pair<FileID, unsigned> EndInfo = SM.getDecomposedLoc(Range.getEnd()); in validateRange()
75 errc::invalid_argument, "Range begins and ends in different files"); in validateRange()
79 "Range's begin is past its end"); in validateRange()
84 llvm::Error clang::tooling::validateEditRange(const CharSourceRange &Range, in validateEditRange() argument
86 return validateRange(Range, SM, /*AllowSystemHeaders=*/false); in validateEditRange()
104 // Returns the expansion char-range of `Loc` if `Loc` is a split token. For
117 // A char-range expansion is only used where a token-range would be in getExpansionForSplitToken()
126 // If `Range` covers a split token, returns the expansion range, otherwise
127 // returns `Range`.
128 static CharSourceRange getRangeForSplitTokens(CharSourceRange Range, in getRangeForSplitTokens() argument
131 if (Range.isTokenRange()) { in getRangeForSplitTokens()
132 auto BeginToken = getExpansionForSplitToken(Range.getBegin(), SM, LangOpts); in getRangeForSplitTokens()
133 auto EndToken = getExpansionForSplitToken(Range.getEnd(), SM, LangOpts); in getRangeForSplitTokens()
136 BeginToken ? BeginToken->getBegin() : Range.getBegin(); in getRangeForSplitTokens()
137 // We can't use the expansion location with a token-range, because that in getRangeForSplitTokens()
138 // will incorrectly lex the end token, so use a char-range that ends at in getRangeForSplitTokens()
142 // Since the end token is not split, the whole range covers the split, so in getRangeForSplitTokens()
146 Range.getEnd()); in getRangeForSplitTokens()
149 return Range; in getRangeForSplitTokens()
156 CharSourceRange Range; in getRange() local
158 Range = Lexer::makeFileCharRange(EditRange, SM, LangOpts); in getRange()
169 Range = CharSourceRange::getCharRange(B, E); in getRange()
171 return Range; in getRange()
177 CharSourceRange Range = in getFileRangeForEdit() local
179 bool IsInvalid = llvm::errorToBool(validateEditRange(Range, SM)); in getFileRangeForEdit()
182 return Range; in getFileRangeForEdit()
188 CharSourceRange Range = in getFileRange() local
191 llvm::errorToBool(validateRange(Range, SM, /*AllowSystemHeaders=*/true)); in getFileRange()
194 return Range; in getFileRange()
227 // `ExpansionRange` is a character range. in getEntityEndLoc()
250 // First, lex to the current token (which is the last token of the range that in getEntityEndLoc()
283 // Lex the next token we want to possibly expand the range with. in getEntityEndLoc()
308 // Lex the next token we want to possibly expand the range with. in getEntityEndLoc()
416 CharSourceRange Range = CharSourceRange::getTokenRange(Decl.getSourceRange()); in getAssociatedRange() local
421 if (SM.isBeforeInTranslationUnit(T->getBeginLoc(), Range.getBegin())) in getAssociatedRange()
422 Range.setBegin(T->getBeginLoc()); in getAssociatedRange()
425 if (SM.isBeforeInTranslationUnit(T->getBeginLoc(), Range.getBegin())) in getAssociatedRange()
426 Range.setBegin(T->getBeginLoc()); in getAssociatedRange()
431 Range.setEnd( in getAssociatedRange()
433 Range.setTokenRange(false); in getAssociatedRange()
447 Range.getBegin()) && in getAssociatedRange()
451 atOrBeforeSeparation(SM, Range.getEnd(), LangOpts)) { in getAssociatedRange()
455 Range.setBegin(Comment->getBeginLoc()); in getAssociatedRange()
460 !SM.isBeforeInTranslationUnit(Attr->getLocation(), Range.getBegin())) in getAssociatedRange()
462 Range.setBegin(Attr->getLocation()); in getAssociatedRange()
468 SM.getBufferData(SM.getFileID(Range.getBegin()), &Invalid); in getAssociatedRange()
472 Source.substr(0, SM.getFileOffset(Range.getBegin())); in getAssociatedRange()
481 Range.setBegin(Range.getBegin().getLocWithOffset(static_cast<int>( in getAssociatedRange()
491 // Range.getEnd() is already fully un-expanded by getEntityEndLoc. But, in getAssociatedRange()
492 // Range.getBegin() may be inside an expansion. in getAssociatedRange()
493 return Lexer::makeFileCharRange(Range, SM, LangOpts); in getAssociatedRange()