[clang-format] Fix a bug in AlignConsecutiveAssignments

Fixes #55113.

Differential Revision: https://reviews.llvm.org/D124868
This commit is contained in:
owenca 2022-05-03 12:04:50 -07:00
parent 892b205c97
commit 342e1c77c3
2 changed files with 14 additions and 2 deletions

View File

@ -369,6 +369,8 @@ AlignTokenSequence(const FormatStyle &Style, unsigned Start, unsigned End,
if (Changes[i].Tok->MatchingParen &&
Changes[i].Tok->MatchingParen->is(TT_LambdaLBrace))
return false;
if (Changes[ScopeStart].NewlinesBefore > 0)
return false;
return Style.BinPackArguments;
}

View File

@ -18010,11 +18010,21 @@ TEST_F(FormatTest, AlignWithLineBreaks) {
Style);
// clang-format on
Style = getLLVMStyleWithColumns(120);
Style = getLLVMStyleWithColumns(20);
Style.AlignConsecutiveAssignments.Enabled = true;
Style.ContinuationIndentWidth = 4;
Style.IndentWidth = 4;
verifyFormat("void foo() {\n"
" int i1 = 1;\n"
" int j = 0;\n"
" int k = bar(\n"
" argument1,\n"
" argument2);\n"
"}",
Style);
Style.ColumnLimit = 120;
// clang-format off
verifyFormat("void SomeFunc() {\n"
" newWatcher.maxAgeUsec = ToLegacyTimestamp(GetMaxAge(FromLegacyTimestamp<milliseconds>(monitorFrequencyUsec),\n"