https://github.com/owenca created https://github.com/llvm/llvm-project/pull/121621
None >From 4c410b4f442e956f354f3e826d61733f85e8f390 Mon Sep 17 00:00:00 2001 From: Owen Pan <owenpi...@gmail.com> Date: Mon, 30 Dec 2024 01:59:32 -0800 Subject: [PATCH] [clang-format][NFC] Replace SmallVectorImpl with ArrayRef --- clang/lib/Format/AffectedRangeManager.cpp | 10 ++-- clang/lib/Format/AffectedRangeManager.h | 4 +- clang/lib/Format/Format.cpp | 8 +-- clang/lib/Format/FormatTokenLexer.cpp | 5 +- clang/lib/Format/UnwrappedLineFormatter.cpp | 64 ++++++++++----------- clang/lib/Format/UnwrappedLineParser.cpp | 9 +-- clang/lib/Format/UnwrappedLineParser.h | 2 +- 7 files changed, 48 insertions(+), 54 deletions(-) diff --git a/clang/lib/Format/AffectedRangeManager.cpp b/clang/lib/Format/AffectedRangeManager.cpp index bf124d73e89e71..67108f35401915 100644 --- a/clang/lib/Format/AffectedRangeManager.cpp +++ b/clang/lib/Format/AffectedRangeManager.cpp @@ -21,8 +21,8 @@ namespace format { bool AffectedRangeManager::computeAffectedLines( SmallVectorImpl<AnnotatedLine *> &Lines) { - SmallVectorImpl<AnnotatedLine *>::iterator I = Lines.begin(); - SmallVectorImpl<AnnotatedLine *>::iterator E = Lines.end(); + ArrayRef<AnnotatedLine *>::iterator I = Lines.begin(); + ArrayRef<AnnotatedLine *>::iterator E = Lines.end(); bool SomeLineAffected = false; const AnnotatedLine *PreviousLine = nullptr; while (I != E) { @@ -34,7 +34,7 @@ bool AffectedRangeManager::computeAffectedLines( // if any token within the directive is affected. if (Line->InPPDirective) { FormatToken *Last = Line->Last; - SmallVectorImpl<AnnotatedLine *>::iterator PPEnd = I + 1; + const auto *PPEnd = I + 1; while (PPEnd != E && !(*PPEnd)->First->HasUnescapedNewline) { Last = (*PPEnd)->Last; ++PPEnd; @@ -89,8 +89,8 @@ bool AffectedRangeManager::affectsLeadingEmptyLines(const FormatToken &Tok) { } void AffectedRangeManager::markAllAsAffected( - SmallVectorImpl<AnnotatedLine *>::iterator I, - SmallVectorImpl<AnnotatedLine *>::iterator E) { + ArrayRef<AnnotatedLine *>::iterator I, + ArrayRef<AnnotatedLine *>::iterator E) { while (I != E) { (*I)->Affected = true; markAllAsAffected((*I)->Children.begin(), (*I)->Children.end()); diff --git a/clang/lib/Format/AffectedRangeManager.h b/clang/lib/Format/AffectedRangeManager.h index add16bdd7a7c3d..eef056fdf06338 100644 --- a/clang/lib/Format/AffectedRangeManager.h +++ b/clang/lib/Format/AffectedRangeManager.h @@ -47,8 +47,8 @@ class AffectedRangeManager { bool affectsLeadingEmptyLines(const FormatToken &Tok); // Marks all lines between I and E as well as all their children as affected. - void markAllAsAffected(SmallVectorImpl<AnnotatedLine *>::iterator I, - SmallVectorImpl<AnnotatedLine *>::iterator E); + void markAllAsAffected(ArrayRef<AnnotatedLine *>::iterator I, + ArrayRef<AnnotatedLine *>::iterator E); // Determines whether 'Line' is affected by the SourceRanges given as input. // Returns \c true if line or one if its children is affected. diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 8f44e9f00212cf..59a053ee5a84a2 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -3069,8 +3069,8 @@ static bool affectsRange(ArrayRef<tooling::Range> Ranges, unsigned Start, // its current line. // If `Cursor` is not on any #include, `Index` will be UINT_MAX. static std::pair<unsigned, unsigned> -FindCursorIndex(const SmallVectorImpl<IncludeDirective> &Includes, - const SmallVectorImpl<unsigned> &Indices, unsigned Cursor) { +FindCursorIndex(const ArrayRef<IncludeDirective> &Includes, + const ArrayRef<unsigned> &Indices, unsigned Cursor) { unsigned CursorIndex = UINT_MAX; unsigned OffsetToEOL = 0; for (int i = 0, e = Includes.size(); i != e; ++i) { @@ -3119,7 +3119,7 @@ std::string replaceCRLF(const std::string &Code) { // provided and put on a deleted #include, it will be moved to the remaining // #include in the duplicate #includes. static void sortCppIncludes(const FormatStyle &Style, - const SmallVectorImpl<IncludeDirective> &Includes, + const ArrayRef<IncludeDirective> &Includes, ArrayRef<tooling::Range> Ranges, StringRef FileName, StringRef Code, tooling::Replacements &Replaces, unsigned *Cursor) { @@ -3362,7 +3362,7 @@ static unsigned findJavaImportGroup(const FormatStyle &Style, // import group, a newline is inserted, and within each import group, a // lexicographic sort based on ASCII value is performed. static void sortJavaImports(const FormatStyle &Style, - const SmallVectorImpl<JavaImportDirective> &Imports, + const ArrayRef<JavaImportDirective> &Imports, ArrayRef<tooling::Range> Ranges, StringRef FileName, StringRef Code, tooling::Replacements &Replaces) { unsigned ImportsBeginOffset = Imports.front().Offset; diff --git a/clang/lib/Format/FormatTokenLexer.cpp b/clang/lib/Format/FormatTokenLexer.cpp index 7a264bddcdfe19..30c6e39c5e1cc7 100644 --- a/clang/lib/Format/FormatTokenLexer.cpp +++ b/clang/lib/Format/FormatTokenLexer.cpp @@ -562,8 +562,7 @@ bool FormatTokenLexer::tryMergeTokens(ArrayRef<tok::TokenKind> Kinds, if (Tokens.size() < Kinds.size()) return false; - SmallVectorImpl<FormatToken *>::const_iterator First = - Tokens.end() - Kinds.size(); + const auto *First = Tokens.end() - Kinds.size(); for (unsigned i = 0; i < Kinds.size(); ++i) if (First[i]->isNot(Kinds[i])) return false; @@ -575,7 +574,7 @@ bool FormatTokenLexer::tryMergeTokens(size_t Count, TokenType NewType) { if (Tokens.size() < Count) return false; - SmallVectorImpl<FormatToken *>::const_iterator First = Tokens.end() - Count; + const auto *First = Tokens.end() - Count; unsigned AddLength = 0; for (size_t i = 1; i < Count; ++i) { // If there is whitespace separating the token and the previous one, diff --git a/clang/lib/Format/UnwrappedLineFormatter.cpp b/clang/lib/Format/UnwrappedLineFormatter.cpp index 803c600cec44db..1d854fee0ec359 100644 --- a/clang/lib/Format/UnwrappedLineFormatter.cpp +++ b/clang/lib/Format/UnwrappedLineFormatter.cpp @@ -183,9 +183,9 @@ class LevelIndentTracker { unsigned Indent = 0; }; -const FormatToken *getMatchingNamespaceToken( - const AnnotatedLine *Line, - const SmallVectorImpl<AnnotatedLine *> &AnnotatedLines) { +const FormatToken * +getMatchingNamespaceToken(const AnnotatedLine *Line, + const ArrayRef<AnnotatedLine *> &AnnotatedLines) { if (!Line->startsWith(tok::r_brace)) return nullptr; size_t StartLineIndex = Line->MatchingOpeningBlockLineIndex; @@ -200,9 +200,9 @@ StringRef getNamespaceTokenText(const AnnotatedLine *Line) { return NamespaceToken ? NamespaceToken->TokenText : StringRef(); } -StringRef getMatchingNamespaceTokenText( - const AnnotatedLine *Line, - const SmallVectorImpl<AnnotatedLine *> &AnnotatedLines) { +StringRef +getMatchingNamespaceTokenText(const AnnotatedLine *Line, + const ArrayRef<AnnotatedLine *> &AnnotatedLines) { const FormatToken *NamespaceToken = getMatchingNamespaceToken(Line, AnnotatedLines); return NamespaceToken ? NamespaceToken->TokenText : StringRef(); @@ -241,8 +241,8 @@ class LineJoiner { /// Calculates how many lines can be merged into 1 starting at \p I. unsigned tryFitMultipleLinesInOne(LevelIndentTracker &IndentTracker, - SmallVectorImpl<AnnotatedLine *>::const_iterator I, - SmallVectorImpl<AnnotatedLine *>::const_iterator E) { + ArrayRef<AnnotatedLine *>::const_iterator I, + ArrayRef<AnnotatedLine *>::const_iterator E) { const unsigned Indent = IndentTracker.getIndent(); // Can't join the last line with anything. @@ -614,8 +614,8 @@ class LineJoiner { } unsigned - tryMergeSimplePPDirective(SmallVectorImpl<AnnotatedLine *>::const_iterator I, - SmallVectorImpl<AnnotatedLine *>::const_iterator E, + tryMergeSimplePPDirective(ArrayRef<AnnotatedLine *>::const_iterator I, + ArrayRef<AnnotatedLine *>::const_iterator E, unsigned Limit) { if (Limit == 0) return 0; @@ -626,8 +626,8 @@ class LineJoiner { return 1; } - unsigned tryMergeNamespace(SmallVectorImpl<AnnotatedLine *>::const_iterator I, - SmallVectorImpl<AnnotatedLine *>::const_iterator E, + unsigned tryMergeNamespace(ArrayRef<AnnotatedLine *>::const_iterator I, + ArrayRef<AnnotatedLine *>::const_iterator E, unsigned Limit) { if (Limit == 0) return 0; @@ -692,9 +692,10 @@ class LineJoiner { return 2; } - unsigned tryMergeSimpleControlStatement( - SmallVectorImpl<AnnotatedLine *>::const_iterator I, - SmallVectorImpl<AnnotatedLine *>::const_iterator E, unsigned Limit) { + unsigned + tryMergeSimpleControlStatement(ArrayRef<AnnotatedLine *>::const_iterator I, + ArrayRef<AnnotatedLine *>::const_iterator E, + unsigned Limit) { if (Limit == 0) return 0; if (Style.BraceWrapping.AfterControlStatement == @@ -734,10 +735,9 @@ class LineJoiner { return 1; } - unsigned - tryMergeShortCaseLabels(SmallVectorImpl<AnnotatedLine *>::const_iterator I, - SmallVectorImpl<AnnotatedLine *>::const_iterator E, - unsigned Limit) { + unsigned tryMergeShortCaseLabels(ArrayRef<AnnotatedLine *>::const_iterator I, + ArrayRef<AnnotatedLine *>::const_iterator E, + unsigned Limit) { if (Limit == 0 || I + 1 == E || I[1]->First->isOneOf(tok::kw_case, tok::kw_default)) { return 0; @@ -768,7 +768,7 @@ class LineJoiner { if (Line->First->is(tok::comment)) { if (Level != Line->Level) return 0; - SmallVectorImpl<AnnotatedLine *>::const_iterator J = I + 2 + NumStmts; + const auto *J = I + 2 + NumStmts; for (; J != E; ++J) { Line = *J; if (Line->InPPDirective != InPPDirective) @@ -789,10 +789,9 @@ class LineJoiner { return NumStmts; } - unsigned - tryMergeSimpleBlock(SmallVectorImpl<AnnotatedLine *>::const_iterator I, - SmallVectorImpl<AnnotatedLine *>::const_iterator E, - unsigned Limit) { + unsigned tryMergeSimpleBlock(ArrayRef<AnnotatedLine *>::const_iterator I, + ArrayRef<AnnotatedLine *>::const_iterator E, + unsigned Limit) { // Don't merge with a preprocessor directive. if (I[1]->Type == LT_PreprocessorDirective) return 0; @@ -974,10 +973,9 @@ class LineJoiner { /// Returns the modified column limit for \p I if it is inside a macro and /// needs a trailing '\'. - unsigned - limitConsideringMacros(SmallVectorImpl<AnnotatedLine *>::const_iterator I, - SmallVectorImpl<AnnotatedLine *>::const_iterator E, - unsigned Limit) { + unsigned limitConsideringMacros(ArrayRef<AnnotatedLine *>::const_iterator I, + ArrayRef<AnnotatedLine *>::const_iterator E, + unsigned Limit) { if (I[0]->InPPDirective && I + 1 != E && !I[1]->First->HasUnescapedNewline && I[1]->First->isNot(tok::eof)) { return Limit < 2 ? 0 : Limit - 2; @@ -985,15 +983,15 @@ class LineJoiner { return Limit; } - bool nextTwoLinesFitInto(SmallVectorImpl<AnnotatedLine *>::const_iterator I, + bool nextTwoLinesFitInto(ArrayRef<AnnotatedLine *>::const_iterator I, unsigned Limit) { if (I[1]->First->MustBreakBefore || I[2]->First->MustBreakBefore) return false; return 1 + I[1]->Last->TotalLength + 1 + I[2]->Last->TotalLength <= Limit; } - bool nextNLinesFitInto(SmallVectorImpl<AnnotatedLine *>::const_iterator I, - SmallVectorImpl<AnnotatedLine *>::const_iterator E, + bool nextNLinesFitInto(ArrayRef<AnnotatedLine *>::const_iterator I, + ArrayRef<AnnotatedLine *>::const_iterator E, unsigned Limit) { unsigned JoinedLength = 0; for (const auto *J = I + 1; J != E; ++J) { @@ -1034,9 +1032,9 @@ class LineJoiner { const FormatStyle &Style; const AdditionalKeywords &Keywords; - const SmallVectorImpl<AnnotatedLine *>::const_iterator End; + const ArrayRef<AnnotatedLine *>::const_iterator End; - SmallVectorImpl<AnnotatedLine *>::const_iterator Next; + ArrayRef<AnnotatedLine *>::const_iterator Next; const SmallVectorImpl<AnnotatedLine *> &AnnotatedLines; }; diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index 654148a161bd7f..5375eef90c579e 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -51,9 +51,7 @@ void printLine(llvm::raw_ostream &OS, const UnwrappedLine &Line, << "T=" << (unsigned)I->Tok->getType() << ", OC=" << I->Tok->OriginalColumn << ", \"" << I->Tok->TokenText << "\"] "; - for (SmallVectorImpl<UnwrappedLine>::const_iterator - CI = I->Children.begin(), - CE = I->Children.end(); + for (const auto *CI = I->Children.begin(), *CE = I->Children.end(); CI != CE; ++CI) { OS << "\n"; printLine(OS, *CI, (Prefix + " ").str()); @@ -4788,8 +4786,7 @@ void UnwrappedLineParser::nextToken(int LevelDifference) { } void UnwrappedLineParser::distributeComments( - const SmallVectorImpl<FormatToken *> &Comments, - const FormatToken *NextTok) { + const ArrayRef<FormatToken *> &Comments, const FormatToken *NextTok) { // Whether or not a line comment token continues a line is controlled by // the method continuesLineCommentSection, with the following caveat: // @@ -5011,7 +5008,7 @@ void UnwrappedLineParser::readToken(int LevelDifference) { namespace { template <typename Iterator> void pushTokens(Iterator Begin, Iterator End, - llvm::SmallVectorImpl<FormatToken *> &Into) { + SmallVectorImpl<FormatToken *> &Into) { for (auto I = Begin; I != End; ++I) { Into.push_back(I->Tok); for (const auto &Child : I->Children) diff --git a/clang/lib/Format/UnwrappedLineParser.h b/clang/lib/Format/UnwrappedLineParser.h index b7daf8d9f44012..8160d5e84186e6 100644 --- a/clang/lib/Format/UnwrappedLineParser.h +++ b/clang/lib/Format/UnwrappedLineParser.h @@ -228,7 +228,7 @@ class UnwrappedLineParser { // NextTok specifies the next token. A null pointer NextTok is supported, and // signifies either the absence of a next token, or that the next token // shouldn't be taken into account for the analysis. - void distributeComments(const SmallVectorImpl<FormatToken *> &Comments, + void distributeComments(const ArrayRef<FormatToken *> &Comments, const FormatToken *NextTok); // Adds the comment preceding the next token to unwrapped lines. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits