cha5on updated this revision to Diff 429138. cha5on marked 4 inline comments as done. cha5on added a comment.
Update for review. - Further simplify testcases. - Update issue URL in comment to use llvm.org alias. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125162/new/ https://reviews.llvm.org/D125162 Files: clang/lib/Format/WhitespaceManager.cpp clang/unittests/Format/FormatTest.cpp Index: clang/unittests/Format/FormatTest.cpp =================================================================== --- clang/unittests/Format/FormatTest.cpp +++ clang/unittests/Format/FormatTest.cpp @@ -17280,6 +17280,23 @@ // " ccc ? aaaaa : bbbbb,\n" // " dddddddddddddddddddddddddd);", // Alignment); + + // Confirm proper handling of AlignConsecutiveAssignments with + // BinPackArguments. + // See https://llvm.org/PR55360 + Alignment = getLLVMStyleWithColumns(50); + Alignment.AlignConsecutiveAssignments.Enabled = true; + Alignment.BinPackArguments = false; + verifyFormat("int a_long_name = 1;\n" + "auto b = B({a_long_name, a_long_name},\n" + " {a_longer_name_for_wrap,\n" + " a_longer_name_for_wrap});", + Alignment); + verifyFormat("int a_long_name = 1;\n" + "auto b = B{{a_long_name, a_long_name},\n" + " {a_longer_name_for_wrap,\n" + " a_longer_name_for_wrap}};", + Alignment); } TEST_F(FormatTest, AlignConsecutiveBitFields) { Index: clang/lib/Format/WhitespaceManager.cpp =================================================================== --- clang/lib/Format/WhitespaceManager.cpp +++ clang/lib/Format/WhitespaceManager.cpp @@ -371,6 +371,9 @@ return false; if (Changes[ScopeStart].NewlinesBefore > 0) return false; + if (Changes[i].Tok->is(tok::l_brace) && + Changes[i].Tok->is(BK_BracedInit)) + return true; return Style.BinPackArguments; } @@ -387,6 +390,14 @@ Changes[i].Tok->Previous->is(TT_ConditionalExpr)) return true; + // Continued direct-list-initialization using braced list. + if (ScopeStart > Start + 1 && + Changes[ScopeStart - 2].Tok->is(tok::identifier) && + Changes[ScopeStart - 1].Tok->is(tok::l_brace) && + Changes[i].Tok->is(tok::l_brace) && + Changes[i].Tok->is(BK_BracedInit)) + return true; + // Continued braced list. if (ScopeStart > Start + 1 && Changes[ScopeStart - 2].Tok->isNot(tok::identifier) &&
Index: clang/unittests/Format/FormatTest.cpp =================================================================== --- clang/unittests/Format/FormatTest.cpp +++ clang/unittests/Format/FormatTest.cpp @@ -17280,6 +17280,23 @@ // " ccc ? aaaaa : bbbbb,\n" // " dddddddddddddddddddddddddd);", // Alignment); + + // Confirm proper handling of AlignConsecutiveAssignments with + // BinPackArguments. + // See https://llvm.org/PR55360 + Alignment = getLLVMStyleWithColumns(50); + Alignment.AlignConsecutiveAssignments.Enabled = true; + Alignment.BinPackArguments = false; + verifyFormat("int a_long_name = 1;\n" + "auto b = B({a_long_name, a_long_name},\n" + " {a_longer_name_for_wrap,\n" + " a_longer_name_for_wrap});", + Alignment); + verifyFormat("int a_long_name = 1;\n" + "auto b = B{{a_long_name, a_long_name},\n" + " {a_longer_name_for_wrap,\n" + " a_longer_name_for_wrap}};", + Alignment); } TEST_F(FormatTest, AlignConsecutiveBitFields) { Index: clang/lib/Format/WhitespaceManager.cpp =================================================================== --- clang/lib/Format/WhitespaceManager.cpp +++ clang/lib/Format/WhitespaceManager.cpp @@ -371,6 +371,9 @@ return false; if (Changes[ScopeStart].NewlinesBefore > 0) return false; + if (Changes[i].Tok->is(tok::l_brace) && + Changes[i].Tok->is(BK_BracedInit)) + return true; return Style.BinPackArguments; } @@ -387,6 +390,14 @@ Changes[i].Tok->Previous->is(TT_ConditionalExpr)) return true; + // Continued direct-list-initialization using braced list. + if (ScopeStart > Start + 1 && + Changes[ScopeStart - 2].Tok->is(tok::identifier) && + Changes[ScopeStart - 1].Tok->is(tok::l_brace) && + Changes[i].Tok->is(tok::l_brace) && + Changes[i].Tok->is(BK_BracedInit)) + return true; + // Continued braced list. if (ScopeStart > Start + 1 && Changes[ScopeStart - 2].Tok->isNot(tok::identifier) &&
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits