[clang] Add configuration option PenaltyBreakBeforeMemberAccess (PR #118409)

Owen Pan via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 27 09:18:38 PST 2025


================
@@ -22365,6 +22365,29 @@ TEST_F(FormatTest, BreakPenaltyAfterForLoopLParen) {
                Style);
 }
 
+TEST_F(FormatTest, BreakPenaltyBeforeMemberAccess) {
+  auto Style = getLLVMStyle();
+  EXPECT_EQ(Style.PenaltyBreakBeforeMemberAccess, 150u);
+
+  Style.ColumnLimit = 60;
+  Style.PenaltyBreakBeforeMemberAccess = 110;
+  verifyFormat("aaaaaaaa.aaaaaaaa.bbbbbbbb()\n"
+               "    .ccccccccccccccccccccc(dddddddd);\n"
+               "aaaaaaaa.aaaaaaaa\n"
+               "    .bbbbbbbb(cccccccccccccccccccccccccccccccc);",
+               Style);
+
+  Style.ColumnLimit = 8;
+  Style.PenaltyExcessCharacter = 15;
+  verifyFormat("foo->bar\n"
+               "    .b(a);",
+               Style);
+  Style.PenaltyBreakBeforeMemberAccess = 200;
+  verifyFormat("foo->bar.b(\n"
+               "    a);",
----------------
owenca wrote:

```suggestion
  Style.ColumnLimit = 13;
  verifyFormat("foo->bar\n"
               "    .b(a);",
```
as line 22381 doesn't affect this test case whether `ColumnLimit` is set to 8 or 13. (The test case at line 22386 already works at the default penalty before this patch.)

https://github.com/llvm/llvm-project/pull/118409


More information about the cfe-commits mailing list