[clang] [clang-format] Make EndsInComma in ContinuationIndenter consistent (PR #146256)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Jun 28 18:18:57 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-format
Author: Owen Pan (owenca)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/146256.diff
2 Files Affected:
- (modified) clang/lib/Format/ContinuationIndenter.cpp (+9-8)
- (modified) clang/unittests/Format/FormatTest.cpp (-14)
``````````diff
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp
index b4745477b96ef..4010f7fbd25be 100644
--- a/clang/lib/Format/ContinuationIndenter.cpp
+++ b/clang/lib/Format/ContinuationIndenter.cpp
@@ -1929,6 +1929,15 @@ void ContinuationIndenter::moveStatePastScopeOpener(LineState &State,
return;
}
+ const bool EndsInComma = [](const FormatToken *Tok) {
+ if (!Tok)
+ return false;
+ const auto *Prev = Tok->getPreviousNonComment();
+ if (!Prev)
+ return false;
+ return Prev->is(tok::comma);
+ }(Current.MatchingParen);
+
unsigned NewIndent;
unsigned LastSpace = CurrentState.LastSpace;
bool AvoidBinPacking;
@@ -1948,9 +1957,6 @@ void ContinuationIndenter::moveStatePastScopeOpener(LineState &State,
NewIndent = CurrentState.LastSpace + Style.ContinuationIndentWidth;
}
const FormatToken *NextNonComment = Current.getNextNonComment();
- bool EndsInComma = Current.MatchingParen &&
- Current.MatchingParen->Previous &&
- Current.MatchingParen->Previous->is(tok::comma);
AvoidBinPacking = EndsInComma || Current.is(TT_DictLiteral) ||
Style.isProto() || !Style.BinPackArguments ||
(NextNonComment && NextNonComment->isOneOf(
@@ -1984,11 +1990,6 @@ void ContinuationIndenter::moveStatePastScopeOpener(LineState &State,
LastSpace = std::max(LastSpace, CurrentState.Indent);
}
- bool EndsInComma =
- Current.MatchingParen &&
- Current.MatchingParen->getPreviousNonComment() &&
- Current.MatchingParen->getPreviousNonComment()->is(tok::comma);
-
// If ObjCBinPackProtocolList is unspecified, fall back to BinPackParameters
// for backwards compatibility.
bool ObjCBinPackProtocolList =
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index a05bf8305716b..944e7c3fb152a 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -27953,13 +27953,6 @@ TEST_F(FormatTest, AlignArrayOfStructuresLeftAlignmentNonSquare) {
"};",
Style);
verifyFormat("void foo() {\n"
- " auto thing = test{\n"
- " {\n"
- " {13}, {something}, // A\n"
- " }\n"
- " };\n"
- "}",
- "void foo() {\n"
" auto thing = test{\n"
" {\n"
" {13},\n"
@@ -28017,13 +28010,6 @@ TEST_F(FormatTest, AlignArrayOfStructuresRightAlignmentNonSquare) {
"};",
Style);
verifyFormat("void foo() {\n"
- " auto thing = test{\n"
- " {\n"
- " {13}, {something}, // A\n"
- " }\n"
- " };\n"
- "}",
- "void foo() {\n"
" auto thing = test{\n"
" {\n"
" {13},\n"
``````````
</details>
https://github.com/llvm/llvm-project/pull/146256
More information about the cfe-commits
mailing list